我有2个文件夹(目录A和目录B),它们包含.csv
个文件形式的相同财务报告,但可能不同的值。
我试图通过废除相同的报告来协调这些报告,但我也尝试编写执行比较的.bat
文件,此外,将相应的文件转移到其他文件夹条件如果发现特定文件存在差异,请执行此操作。
我希望.bat
文件:
我的程序看起来像这样(显然不完整):
@echo off
:Main
FOR /D %%X ("C:\youl\dirA") DO COMP %%X C:\youl\dirB
IF ERRORLEVEL 0 GOTO Next1
:Next1
Copy C:\youl\dirA C:\youl\dirB
显然,对于我来说,这是一段非常可怕且无法操作的代码。
非常感谢任何帮助!
从npocmaka的代码更新:
@echo off
Setlocal enableDelayedExpansion
set "dirA=c:\users\youl\automation\binarycheck\A\*.csv"
set "dirB=c:\users\youl\automation\binarycheck\B\*.csv"
set "dirC=c:\users\youl\automation\binarycheck\C\"
for /f "tokens=* delims=" &&a in ("%dirA&") do (
fc /b "%%a" "%dirB%" >nul 2>&1 && (
move "%%a" "%dirC%"
)
)
endlocal
答案 0 :(得分:0)
未经测试!
@echo off
setlocal enableDelayedExpansion
set "dirA=c:\dir1"
set "dirB=c:\dir2"
for /f "tokens=* delims=" %%a in ('dir /b /s /a:-d "%dirA%"') do (
set "path1=%%~pa"
set "path2=!path1:%dirA%=%dirB%!"
fc /b "%%~fa" "%%~da!path2!%%~nxa" >nul 2>&1 && (
move "%%~fa" "%%~da!path2!%%~nxa"
)
)
endlocal
假设您需要递归检查,dirA
和dirB
位于同一个驱动器上...