使用批处理文件监视文件夹

时间:2014-02-22 22:56:32

标签: batch-file cmd directory monitoring

如果添加了新文件,我想监视我的文件夹。然后如果添加我想执行一些文件。但我不想使用第三方应用程序。

我有一些想法,但我不知道该怎么做。

这是我的文件夹; d:\ MonitoringFolder

因此,每小时批处理文件将检查其中的文件并将其写入txt。

dir /b "D:\MonitoringFolder" > old.txt

Old.txt是 - > string 1,string 2,string 3

一小时后,批处理文件将在稍后检查并再次写入另一个文本。

dir /b "D:\MonitoringFolder" > new.txt

New.txt是 - > string 1,string 2,string 3,string 5

然后它会比较new.txt和old.txt。所以最近添加了字符串5。它将提示一个窗口,并添加“String 5”!或添加(删除)新文件。

我想这样做如果有人能告诉我一种方法,我会很感激。

4 个答案:

答案 0 :(得分:1)

脚本MONITOR.cmd计划不时地运行:

IF EXIST NEW.TXT DEL NEW.TXT
FOR /F "tokens=*" %%* IN ('DIR /S /B /ON "D:\MonitoringFolder"') DO ECHO "%%*">>NEW.TXT
FOR /F "tokens=*" %%* IN (NEW.TXT) DO (FIND %%* OLD.TXT >NUL || START CMD /K INSERTED.cmd %%*)
FOR /F "tokens=*" %%* IN (OLD.TXT) DO (FIND %%* NEW.TXT >NUL || START CMD /K  DELETED.cmd %%*)
DEL OLD.TXT
REN NEW.TXT OLD.TXT

脚本INSERTED.cmd将创建一个新窗口,提示您对新文件的显示采取措施:

ECHO Inserted new file %1
DIR %1
PAUSE & EXIT

脚本DELETED.cmd将创建一个新窗口,提示您对旧文件的消失采取措施:

ECHO Deleted file %1
PAUSE & EXIT

也会监视子文件夹。即使文件名中有空格和重音字符,它也适用于我。

答案 1 :(得分:0)

也许您要编写批处理脚本(用于扫描文件夹并比较结果),并每隔小时使用调度程序(如cron(Linux)或Windows任务调度程序)进行定期检查。这里有一些文档:http://support.microsoft.com/kb/308569http://code.tutsplus.com/tutorials/scheduling-tasks-with-cron-jobs--net-8800

答案 2 :(得分:0)

@ECHO OFF &SETLOCAL disableDelayedExpansion
SET "SaveFile=Save.File"
IF NOT EXIST "%SaveFile%" GOTO:cont
DIR /b /a-d | FINDSTR /vg:"%SaveFile%">nul||EXIT /b
ECHO(execute some programs here
:cont
>"%SaveFile%" DIR /b /a-d

答案 3 :(得分:0)

由于您每小时都在转储输出,只需从提示符执行此命令:

fc /u old.txt new.txt

它会告诉你,如果有的话,两个文件之间存在哪些差异。