我正在尝试在日期和时间正确时加载网页。我想出的代码是:
@echo off
:repeat
set CurrentTime=%time:~0,2%.%time:~3,2%
set CurrentDate=%date:/=-%
echo.
echo %CurrentDate% %CurrentTime%
echo.
IF %CurrentTime% == Tue 08-04-2014 13.04 goto load
timeout /t 1 >nul
goto repeat
:load
start/MAX iexplore.exe"" "http://www.youtube.com.au"
timeout /t 6 >nul
如果我从 IF 语句中删除当前日期和日期,它将起作用,但如果我不这样做,它就不会起作用。我确实需要日期和时间才能工作。谢谢。
IF "%date% %Time%"=="Tue 08-04-2014 13.04" goto load
应该为您工作。您需要使用"引号"将字符串分组为单个实体,否则IF
无法判断==
是要比较的字符串的一部分还是比较运算符。(这假设您的日期格式是Tue 08-04-2014
并且时间是13.04
)
除了 Magoo 发布的解决方案之外,请注意,%DATE%
使用用户完全且可无限自定义的短日期格式返回当前日期。一个用户可以将其系统配置为返回Tue 08/04/2014
另一个用户可以选择Apr8th14
。对于BAT程序员来说,这完全是一场噩梦。即使在同一台计算机上。扩展包含文件名的变量时,~t
修饰符也是如此。
有几种解决方案,谷歌一下找到它们。在我看来最简单的是使用WMIC。
WMIC Path Win32_LocalTime Get Day,Hour,Minute,Month,Second,Year /Format:table
以方便的方式返回日期,以便使用 FOR
命令直接解析。
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
SET /A currentdate=%%F*10000+%%D*100+%%A
)
IF "%currentdate"=="20140408" goto load
任务适合您要加载页面的原因,也可以使用计划任务。