我正在尝试在日期和时间正确时加载网页。我提出的代码是:
@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语句中删除CurrentDate和日期,它将起作用,但如果我不这样做则不会。我确实需要日期和时间来工作。 感谢。
答案 0 :(得分:0)
IF "%date% %Time%"=="Tue 08-04-2014 13.04" goto load
为你工作。您需要使用“引号”将字符串分组为单个实体,否则IF
无法判断==
是否是要比较的字符串的一部分,或者它是比较运算符。 (并假设您的日期格式为Tue 08-04-2014
,时间为13.04
)
答案 1 :(得分:0)
另外,对于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
答案 2 :(得分:0)
如果符合您要加载页面的原因,您也可以使用计划任务。