Batch file 如何在批处理中正确使用“如果”条件

Batch file 如何在批处理中正确使用“如果”条件,batch-file,if-statement,goto,Batch File,If Statement,Goto,对不起,我的英语表达不好。。。我不是本地人。 我寻找答案已经有一段时间了。。。也许我做得不对,但似乎我的简单代码不起作用是有原因的。 一旦我打开批处理程序,它就会关闭,而我没有时间阅读错误消息: 有人能纠正一下这个吗?? 我很感激任何帮助 @echo off color 0a mode 1000 title THE OFFSWITCH :start cls if %time%== "12:00:00.00" goto :time e

对不起,我的英语表达不好。。。我不是本地人。 我寻找答案已经有一段时间了。。。也许我做得不对,但似乎我的简单代码不起作用是有原因的。 一旦我打开批处理程序,它就会关闭,而我没有时间阅读错误消息: 有人能纠正一下这个吗?? 我很感激任何帮助

    @echo off
    color 0a
    mode 1000
    title THE OFFSWITCH
    :start
    cls
    if %time%== "12:00:00.00" goto :time
    echo.
    echo                                         IT IS NOT TIME YET : %time%
    goto start
    :time
    echo hello 
    pause>nul

如果你的代码运行正常,那纯粹是运气。在大多数情况下,它只会错过时间,因为循环速度不够快,无法获得正确的厘米秒

而不是

if %time%== "12:00:00.00" goto :time
你应该使用

if "%time%" geq "12:00:00.00" goto :time
如果时间大于或等于


也应该考虑将延迟推迟到循环中,因为它占用了所有CPU时间,它可以得到,从而减慢系统的速度。例如,timeout/t1>nul等待一秒钟。

首先需要在引号中加上%time%,以便进行适当的比较。。第二,如果您想在if cnedition之后添加新行,则需要括号。我正在用手机写信,现在无法给你更准确的答复。谢谢你这么快就给我答复。。。我试试看谢谢!不应该去:时间就是你的时间感谢你的帮助,它起了作用!!我将与您分享结果:@echo off color 0a mode 1000 title OFFSWITCH:start cls set time=%time%if%time%==12:25:00.00 goto time echo还没到时间:%time%goto start:time echo hello pause>nul