我不知道如何编写bat文件进行时间比较。
bat文件是获取当前时间,如果现在是00:00或之后但是在7:00之前,bat文件将发送命令关闭计算机,否则它将什么也不做。
set "currentTime=%TIME%
set flag=false
if %currentTime% geq 07:00 if %currentTime% leq 00:45 set flag=true
if %flag%==true (
shutdown -s
) else (
shutdown -a
)
请帮助,我是新手,谢谢。
答案 0 :(得分:1)
您的代码行
if %currentTime% geq 07:00 if %currentTime% leq 00:45 set flag=true
以字符串形式将当前时间与" 07:00"进行比较。然后到" 00:45"如果当前时间稍后而不是07:00 且早于而不是00:45,则执行shutdown -s
,否则执行shutdown -a
。
由于时间不能两者兼有,因此它始终遵循else
路径。
但代码设置为执行关闭,因此它无法做任何事情"正如你所声称的那样。
也许你 希望 在07:00之前关闭,但如果在00:45之前有不同的参数
if %currentTime% lss 07:00 (
if %currentTime% leq 00:45 (
shutdown -s
) else (
shutdown -a
)
)
在00:45之前是shutdown -s
,如果在00:45之后但在07:00之前是shutdown -a
您的下一个问题是,您没有告诉我们您使用的是哪种形式。可以使用24小时制或12小时制,并且可以使用领先的" 0"在小时,或用空格替换领先的0
在不知道您使用何种格式的情况下,转换或比较有四种可能性。以上应该适用于24小时,领先0。