如何使用批处理检测 .txt 文件中的更改?
how to detect change in .txt file using batch?
我做了一个简单的局域网聊天批处理文件,想知道是否可以
有一个命令可以检查特定的 txt 文件是否已更新。
聊天记录存储在 log.dat 中,我想在有新消息时有声音通知或类似的东西。
@echo off
title LAN chat reader
call Color.bat
:read
call Color.bat
cls
type log.dat
timeout /t 3 /nobreak >nul
goto read
(我是菜鸟,请告诉我这是否可行)
要检查文件 date/time 使用 for
和 %%~t
前缀:
@echo off
title LAN chat reader
setlocal enableDelayedExpansion
:read
call Color.bat
cls
type log.dat
for %%a in (log.dat) do set filetimesize=%%~tza
:checkupdate
ping -n 1 -w 100 localhost >nul
for %%a in (log.dat) do if "!filetimesize!"=="%%~tza" goto checkupdate
echo updated
goto read
wOxxOm 已经给出了检查更新文件的解决方案。
这是一种产生声音的方法:
copy con bell.txt
然后按住 ALT 键输入 007
,同时按住 ALT,然后松开 ALT 键。 ^G
应该会出现在您的屏幕上(= 0x07,这是一个铃铛),然后按 Ctrl-Z。这为您提供了一个长度为 1 Byte
的文本文件
Type bell.txt
然后会发出蜂鸣声。
编辑 生成 bell.txt
的更简单方法:在命令行上输入 echo ^G>bell.txt
(要生成 ^G
,请按 CTRL
-G
).这将创建一个三字节文件(而不是使用 copy
技巧的一字节文件)(但这只是一个换行符,不应打扰)。
我做了一个简单的局域网聊天批处理文件,想知道是否可以 有一个命令可以检查特定的 txt 文件是否已更新。 聊天记录存储在 log.dat 中,我想在有新消息时有声音通知或类似的东西。
@echo off
title LAN chat reader
call Color.bat
:read
call Color.bat
cls
type log.dat
timeout /t 3 /nobreak >nul
goto read
(我是菜鸟,请告诉我这是否可行)
要检查文件 date/time 使用 for
和 %%~t
前缀:
@echo off
title LAN chat reader
setlocal enableDelayedExpansion
:read
call Color.bat
cls
type log.dat
for %%a in (log.dat) do set filetimesize=%%~tza
:checkupdate
ping -n 1 -w 100 localhost >nul
for %%a in (log.dat) do if "!filetimesize!"=="%%~tza" goto checkupdate
echo updated
goto read
wOxxOm 已经给出了检查更新文件的解决方案。
这是一种产生声音的方法:
copy con bell.txt
然后按住 ALT 键输入 007
,同时按住 ALT,然后松开 ALT 键。 ^G
应该会出现在您的屏幕上(= 0x07,这是一个铃铛),然后按 Ctrl-Z。这为您提供了一个长度为 1 Byte
Type bell.txt
然后会发出蜂鸣声。
编辑 生成 bell.txt
的更简单方法:在命令行上输入 echo ^G>bell.txt
(要生成 ^G
,请按 CTRL
-G
).这将创建一个三字节文件(而不是使用 copy
技巧的一字节文件)(但这只是一个换行符,不应打扰)。