批量报警文件不会消失

时间:2012-11-29 11:04:53

标签: windows-7 batch-file

由于早上出现的巨大问题,我决定编写一个批处理脚本,在给定时间执行特定文件。但是,当我将计算机闲置一段时间后,它不起作用,似乎循环本身不再循环。

我无法理解导致此操作无效的原因,因为我的屏幕保护程序和CPU / HDD-sleep已关闭。

以下是代码:

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。

2 个答案:

答案 0 :(得分:1)

试试这个......

@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 :(得分:0)

我重新编写了你的​​脚本,因此它更容易阅读,我认为你遇到的问题与3个底线有关。

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

@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