批量比较 2 个文件夹与 .CSV 输出

问题描述

我是批处理的新手。我正在尝试比较 2 个不同文件夹中的内容并将结果输出为 .csv。对比做得很好。但是,当我尝试将结果导出到 2 个不同的 .csv(以便我以后可以合并它们)时,.csv 文件是空的,即使它们不应该。


SET PATH1=C:\Users\ujurado\Desktop\Comp1
SET PATH2=C:\Users\ujurado\Desktop\Comp2

echo %PATH1%
echo %PATH2%

robocopy %PATH1% %PATH2% /L /NJH /njs /NP /NS
robocopy %PATH2% %PATH1% /L /NJH /njs /NP /NS

(for %%i in ("%PATH2%\*") do if exist "%PATH1%\%%~nxi" (ECHO(already exists: "%PATH1%\%%~nxi") ELSE ECHO(NOT found "%PATH1%\%%~nxi")>comparaPrimeroConSegundo.csv
(for %%i in ("%PATH1%\*") do if exist "%PATH2%\%%~nxi" (ECHO(already exists: "%PATH2%\%%~nxi") ELSE ECHO(NOT found "%PATH2%\%%~nxi")>comparaSegundoConPrimero.csv

copy comparaPrimeroConSegundo.csv+comparaSegundoConPrimero.csv comparaFinal.csv```

解决方法

只是一个未经测试的想法,但为什么不尝试单个 robocopy 命令注意:分隔符是单个 TAB 字符): >

@Set "PATH1=%UserProfile%\Desktop\Comp1"
@Set "PATH2=%UserProfile%\Desktop\Comp2"
@(For /F "Tokens=2 Delims=  " %%G In ('%SystemRoot%\System32\robocopy.exe "%PATH1%" "%PATH2%" /L /NDL /NJH /NJS /NP /NS /XC /XN /XO') Do @Echo %%G) 1>"comparaFinal.csv"