使用xcopy复制整个目录后,我想验证是否所有文件都被复制,因为它经常会失败。我试图通过循环遍历源目录中的每个文件,然后检查它是否存在于目标目录中来实现。
我有一些似乎在我的机器上工作但似乎不在构建机器上,这是我需要的地方。
@echo off
set /a count=0
set /a count2=0
for /r "C:\work\DLS\built\Android_EU\data" %%f in (*) do (set /a count+=1
)
for /r "C:\work\DLS\TegraProject\DLS\assets" %%f in (*) do (set /a count2+=1
)
echo count is %count%
echo count 2 is %count2%
if %count%==%count2% echo equal
if not %count%==%count2% echo not equal
pause
if %count%==%count2% exit 0
if not %count%==%count2% exit 1
我手动检查了两台机器上的两个文件夹中有594个文件。
我的机器上已正确报告。
在构建机器上,它说有583和584个文件。是否有任何理由会跳过文件?
谢谢,
克里斯。
答案 0 :(得分:0)
试试这个:它最多可以使用2^31 -1
个文件。 :)
@echo off
set "count="
set "count2="
for /f %%a in (' dir "C:\work\DLS\built\Android_EU\data" /s /b /a-d ^|find /c /v "" ') do set count=%%a
for /f %%a in (' dir "C:\work\DLS\TegraProject\DLS\assets" /s /b /a-d ^|find /c /v "" ') do set count2=%%a
echo count is %count%
echo count 2 is %count2%
if %count% EQU %count2% echo equal
if %count% NEQ %count2% echo not equal
pause
if %count% EQU %count2% exit 0
if not %count% NEQ %count2% exit 1
答案 1 :(得分:0)
好的,所以这似乎有效 - 感谢您输入@foxidrive。
cd C:\work\DLS\built\Android_EU\data
dir /s /b /a-d |find /c /v "" > temp.txt
set /p count=<temp.txt
cd C:\work\DLS\TegraProject\DLS\assets\data
dir /s /b /a-d |find /c /v "" > temp.txt
set /p count2=<temp.txt
echo count is %count%
echo count 2 is %count2%
pause
if %count%==%count2% exit 0
if not %count%==%count2% exit 1