使用Xcopy复制整个目录后,我想验证所有文件是否经常被复制,因为它通常会失败。我正在尝试通过循环浏览源目录中的每个文件,然后检查它存在于目标目录中。
我的机器上似乎可以工作,但似乎不在构建机器上,这是我需要的地方。
@echo off
set /a count=0
set /a count2=0
for /r "C:workDLSbuiltAndroid_EUdata" %%f in (*) do (set /a count+=1
)
for /r "C:workDLSTegraProjectDLSassets" %%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个文件。有什么原因会跳过文件吗?
谢谢,
chris。
好的,所以这似乎有效 - 感谢您的输入@foxidrive。
cd C:workDLSbuiltAndroid_EUdata
dir /s /b /a-d |find /c /v "" > temp.txt
set /p count=<temp.txt
cd C:workDLSTegraProjectDLSassetsdata
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
尝试以下操作:它将用于2^31 -1
文件。:)
@echo off
set "count="
set "count2="
for /f %%a in (' dir "C:workDLSbuiltAndroid_EUdata" /s /b /a-d ^|find /c /v "" ') do set count=%%a
for /f %%a in (' dir "C:workDLSTegraProjectDLSassets" /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