我需要一个批处理文件来监控我的“下载”文件夹中的添加内容,但仅限于新添加的内容。像这样:
:START
NumOldFiles = GetNumberOfFilesOld
Delay_30_Seconds
NumNewFiles = GetNumberOfFilesNew
if(NumFilesOld < NumFilesNew)
run_another_batch_file_I_wrote
goto START
else
goto START
我不想统计子文件夹,只统计目录中的文件夹和文件。
我一直在看这个:
dir "C:\folder"/b/a |find/v/c "::"
但我不知道如何存储此值并将其测试为 < 或 >。
也许有更好的方法来做到这一点,但我现在想不出一个。也许维护一个列表,如果新列表有一个新文件运行批处理脚本,用新列表替换旧列表,我不太确定如何去做。
最佳答案
答案1:
以下代码段应该会让您朝着正确的方向前进。它使用 dir/b
获取原始文件列表,并使用 fc
(文件比较)检查每次执行检查之间的差异。
您可以使用任务计划程序每 x 分钟启动一次此批处理文件:
@echo off
if not exist c:\OldDir.txt echo. > c:\OldDir.txt
dir /b "d:\My Folder" > c:\NewDir.txt
set equal=no
fc c:\OldDir.txt c:\NewDir.txt | find /i "no differences" > nul && set
equal=yes
copy /y c:\Newdir.txt c:\OldDir.txt > nul
if %equal%==yes goto :eof
rem Your batch file lines go here
答案2:
我一直很喜欢library of batch functions由里奇劳伦斯。其中一个函数称为 GetDirStats
.
GetDirStats
函数返回指定目录的文件数、子目录数和总大小。可能方便将来引用。虽然只在NT4/2000/XP/2003上测试过。
只需将 compact/s
更改为 compact
即可不扫描子文件夹。
关于windows - 批处理文件以监视添加到下载文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4230976/