Batch file 不使用常量循环更新批处理

Batch file 不使用常量循环更新批处理,batch-file,Batch File,我如何创建一个不会不断重新启动以检查更改是否已启用的脚本 :0 SET CHANGES=<CHECK.TXT :1 IF %CHANGES% GTR 0 GOTO DONE (TIMEOUT /T 1 >NUL) GOTO 1 :DONE ECHO CHANGES ENABLED: %CHANGES% PAUSE >NUL :0 设置更改=NUL) 转到1 :完成 已启用回显更改:%CHANGES% 暂停>NUL 谢谢 完成编辑(我误解了您的问题): 那是行不通的。。当CH

我如何创建一个不会不断重新启动以检查更改是否已启用的脚本

:0
SET CHANGES=<CHECK.TXT
:1
IF %CHANGES% GTR 0 GOTO DONE
(TIMEOUT /T 1 >NUL)
GOTO 1
:DONE
ECHO CHANGES ENABLED: %CHANGES%
PAUSE >NUL
:0
设置更改=NUL)
转到1
:完成
已启用回显更改:%CHANGES%
暂停>NUL
谢谢

完成编辑(我误解了您的问题):


那是行不通的。。当CHECK.TXT被更改时,我们需要得到一条消息:)嘿,再次:)所以我们仍然有“timeout/t1>nul”,这是主要的问题。。如果我们能找到一种方法,用另一个命令替换超时,这样它就可以在不产生1毫秒循环的情况下进行检查。对于(1,1,10)do(echo.>nul)中的/l%%i,只需一个常量不泛洪检查
@echo off

for %%i in (t.t) do set oldstamp=%%~ti

:loop
for %%i in (t.t) do set newstamp=%%~ti
if not "%newstamp%"=="%oldstamp%" goto :done
timeout /t 1 >nul
goto :loop

:done
echo file has changed