创建批处理文件以在日期和时间正确时加载网页

时间:2014-04-08 03:39:24

标签: datetime batch-file webpage

我正在尝试在日期和时间正确时加载网页。我提出的代码是:

@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和日期,它将起作用,但如果我不这样做则不会。我确实需要日期和时间来工作。 感谢。

3 个答案:

答案 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)

如果符合您要加载页面的原因,您也可以使用计划任务。