我试图获得一个.bat文件来运行一个提示弹出弹出对我的工作PC (Windows7OS)的限制。由于这些限制,我无法使用windows任务调度程序,因此需要时间检查才能在批处理文件本身内运行。
目前,我有以下几点:
@echo off
:check
if "%time%"=="09:51:00.00"
msg user42 Test Reminder
Timeout /t 20 /nobreak
GOTO :Check问题似乎与第三行的“如果”有关。当代码的其余部分被移除时,这一行将被删除。
如有任何建议,将不胜感激。
发布于 2019-01-29 12:28:59
我们需要操作您的时间变量以使其按预期工作,但我们并不真正希望修改系统或用户环境变量。所以我们创造了自己的。
首先,我们确保时间小时值总是有2位数,方法是用0代替空格,因为只有一位数的时间(1,2,3.9)将有一个前导空间。然后,我们删除:,使其成为一个可匹配的数值,然后我们只需做一个匹配,看看时间是否大于或等于0951 (09:51 ),如果是,我们检查它是否小于0952 (09:52 ),这意味着时间必须是09:51任何秒,而不是09:52或更大。
现在我们每50秒运行一次脚本,它会落在每分钟内,如果我们留下20秒,它会发出2到3次警报。
@echo off
:check
set mytime=%time: =0%
set mytime=%mytime::=%
if "%mytime:~0,4%" GEQ "0951" if "%mytime:~0,4%" LSS "0952" msg user42 Test Reminder
Timeout /t 50 /nobreak>nul
GOTO :Checkhttps://stackoverflow.com/questions/54419586
复制相似问题