首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量报警-文件不会关闭

批量报警-文件不会关闭
EN

Stack Overflow用户
提问于 2012-11-29 19:04:53
回答 2查看 417关注 0票数 3

由于早上起床时遇到的巨大问题,我决定编写一个在给定时间执行特定文件的批处理脚本。但是,当我让我的计算机空闲更长一段时间时,它不起作用,似乎循环本身不再循环了。

我不明白是什么原因导致它不工作,因为我的屏幕保护程序和CPU/HDD-sleep被关闭了。

代码如下:

代码语言:javascript
复制
echo OFF

@echo Set hour for alarm:
set /p hour=
@echo Set minute for alarm:
set /p minute=

@echo alarm will ring at %hour% : %minute%

:waitDay
for /f "tokens=5-8 delims=:. " %%a in ('echo/^|time') do (
  set hh=%%a
)

IF %hh% GTR %hour% GOTO waitDay


:start
for /f "tokens=5-8 delims=:. " %%a in ('echo/^|time') do (
  set hh=%%a&set nn=%%b&set ss=%%c&set cs=%%d
)

IF %hh% LSS %hour% GOTO start
IF %nn% LSS %minute% GOTO start

cd \d C:
cd \d C:\Users\Oted\Desktop\Stuff\
"alarm.xspf"

如果有人能帮上忙,我很高兴,我用的是Windows 7。

EN

回答 2

Stack Overflow用户

发布于 2013-03-08 23:25:15

试试这个。

代码语言:javascript
复制
@ECHO OFF
setlocal

set /p exectime=Enter when you want the task to execute (HH:MM): 
set batchfilelocation=C:\Users\Oted\Desktop\Stuff\alarm.xspf

SCHTASKS /create /SC DAILY /TN "WAKEUP" /TR "%batchfilelocation%" /S %computername%
pause
endlocal

REM /SC allows for the following frequency schedules:
REM     MINUTE:     1 - 1439 minutes.
REM     HOURLY:     1 - 23 hours.
REM     DAILY:      1 - 365 days.
REM     WEEKLY:     weeks 1 - 52.
REM     ONCE:       No modifiers.
REM     ONSTART:    No modifiers.
REM     ONLOGON:    No modifiers.
REM     ONIDLE:     No modifiers.
REM     MONTHLY:    1 - 12, or FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY.

这是由一个朋友创建的,我只是编辑了它,使其与这种情况相关。

这将为您想要唤醒的任何时间创建一个计划任务。

最初由iesou创建

票数 1
EN

Stack Overflow用户

发布于 2012-11-29 23:34:18

我已经重写了你的脚本,所以它更容易阅读,我认为你遇到的问题是关于3条底线。

您放入\d而不是/d,这意味着它不会更改目录,因此尝试运行文件alarm.xspf将失败,因为它不在正确的文件夹中。

代码语言:javascript
复制
@echo off
set /p hour=Set hour for alarm: 
set /p minute=Set minute for alarm: 
echo Alarm will ring at %hour%:%minute%

:waitDay
for /f "tokens=1 delims=:" %%a in ("%time%") do (
set hh=%%a
)

if %hh% gtr %hour% goto :waitDay

:start
for /f "tokens=1 delims=:" %%a in ("%time%") do (
set hh=%%a
set mm=%%b
set ss=%%c
set ms=%%d
)

if %hh% lss %hour% goto :start
if %mm% lss %minute% goto :start

C:\Users\Oted\Desktop\Stuff\alarm.xspf
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13624341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档