当特定文件更新或更改时通知用户(已解决)

当特定文件更新或更改时通知用户(已解决)

前几天,我试图制作一个批处理文件,当特定文本文件更新/更改时,它会告诉用户文件的竞赛,这是我的代码,到目前为止它由于某种原因不起作用:S

    @echo off
SetLocal EnableDelayedExpansion
:Try
ping 127.0.0.1 -n 2 -w 1000 > NUL
ping 127.0.0.1 -n %1 -w 1000 > NUL
cls
set test=
for /F "delims=" %%a in (test.txt) do set test=!test! %%a
if !test!==%VAR% ( 
goto Try
) else ( 
echo !test!
set VAR1=!test!
goto Try
)

这就是我正在尝试做的。

等待 2 秒。清除屏幕。将 test.txt 的内容转换为变量。将该变量与另一个名为 %VAR% 的变量进行比较。由于一开始没有变量可以比较,因此它会转到 else 语句并输出一次内容。然后它会将当前内容转换为变量。它会回到开头并再次尝试。如果 test.txt 已更改,它将再次转到 else。如果没有,它将返回尝试等待文件更改。

请帮帮我,这很烦人。


更新!!!


所以今天我把代码弄得乱七八糟,开始尝试其他方法,因为我怀疑这种方法是否有效。所以我想到了“打破常规”。在我的例子中,我有一个批处理文件,它会不时更改这个名为 test.txt 的文本文档。所以我改变了它。这是标签

:Start
cls
set /p inp=
echo %date% %inp% > test.txt
echo 0 >> tmp.yml"
goto Start

而且我也重写了另一批。

@echo off
color 04
:Try
set /p texte=< test.txt  
if exist "tmp.yml" goto Changed
goto Try
:Changed
del "tmp.yml"
echo %texte%
goto Try

希望有人觉得这个有用:D

答案1

我建议不要重新发明轮子,而是使用为此目的明确定义和设计的应用程序。

Windows 版 Tail

答案2

Tail for Windows 看起来不错,但按照 @dmcgill50 的建议,我尝试了一下,但不起作用(尝试使用 Dropbox、Win8 x64 中的文件)。如果知道一种方法来做到这一点就好了。

也许此页面中的某条建议可以帮助您:

10 个实时监控文件和文件夹变化的工具

相关内容