由于早上出现的巨大问题,我决定编写一个批处理脚本,在给定时间执行特定文件。但是,当我将计算机闲置一段时间后,它不起作用,似乎循环本身不再循环。
我无法理解导致此操作无效的原因,因为我的屏幕保护程序和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。
答案 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