首页 > 解决方案 > 批处理文件 - 比较目录并创建非重复文件列表

问题描述

我正在编写一个批处理文件,我将使用它来比较两个目录的内容,对于一个目录中但不在另一个目录中的每个文件,我将发送一封电子邮件。我正在使用一个名为 WatchDirectory 的小程序来帮助完成此操作,并在用于发送电子邮件的 .bat 文件中设置了以下内容。这是为了完整性而包含在内,但我的问题随后出现。

set EMAILFILE="c:\ProgramData\watchDirectory\System.Mail\Out\emailfile.txt"
echo ATTENTION: Files from DMZ not processed by AMS > "%EMAILFILE%"
echo Wally Williams^<wwilliams@ny-tst.com^> >> "%EMAILFILE%"

rem !!!!!   important line !!!!!
echo list of files not processed goes here.... >> "%EMAILFILE%"

rem WatchDirectory will automatically send out emails for files with wdmail extension
ren "%EMAILFILE%" DMZAMS_%RANDOM%_%RANDOM%.wdmail

我的问题:目前我只是检查两个目录如下

for %%i in ("\\sc0189v\d$\APPS\ACH_CANADA\Archive\RECV\201811\*") do if not exist "folder1\%%~nxi" echo %%i File not processed by AMS > results.txt

并创建一个带有名称的文件。

编辑:目前我对包含文件名的 results.txt 文件不做任何事情。我想将这些名称插入到 %%EMAILFILE%% 中。我想将这些放入上述电子邮件而不是行中

echo list of files not processed goes here.... >> "%EMAILFILE%"

我想回显一个文件列表,每行一个。谢谢。

标签: windowsbatch-file

解决方案


根据您的问题和您的编辑,我不完全确定我理解您想要什么。我的评论是提出以下建议:

set "EMAILFILE=c:\ProgramData\watchDirectory\System.Mail\Out\emailfile.txt"
echo ATTENTION: Files from DMZ not processed by AMS > "%EMAILFILE%"
echo Wally Williams^<wwilliams@ny-tst.com^> >> "%EMAILFILE%"

rem !!!!!   important line !!!!!
for %%i in ("\\sc0189v\d$\APPS\ACH_CANADA\Archive\RECV\201811\*") do if not exist "folder1\%%~nxi" echo %%i>>"%EMAILFILE%"

rem WatchDirectory will automatically send out emails for files with wdmail extension
ren "%EMAILFILE%" DMZAMS_%RANDOM%_%RANDOM%.wdmail

推荐阅读