我給自己寫一個批處理文件的一個簡單的任務,將做以下對比文件:批:使用CRC32
比較每個文件的CRC32在「第一」文件夾中的「第二」文件夾中的每個文件。輸出需要是「第一個」文件夾中每個文件的名稱,該文件夾在「秒」中沒有重複。
注意:「CRC32.exe -nf」在第一行輸出CRC32,在第二行輸出CRC32。
這裏是我試圖做到這一點:
@echo off
for %%i in ("%cd%\first\*.*") do (
set uniq=0
for /f %%x in ('crc32 %%i -nf') do (
set one=%%x
goto find_two
)
:find_two
for %%j in ("%cd%\second\*.*") do (
for /f %%x in ('crc32 %%j -nf') do (
set two=%%x
goto compare
)
:compare
if one==two (
goto next
) else (
set uniq=1
)
)
if uniq==1 (
echo %%i >>result.txt
)
:next
)
我認爲不存在這個代碼的幾個錯誤,但我已經很難找到他們。所以如果有人有時間,並且認爲他能幫忙,我會很感激。
如果您認爲需要採用不同的方法,請隨時展示。
我使用'goto'的唯一原因是因爲在C++中沒有'break',但我不知道它不僅會打破嵌套循環,而且會破壞所有循環。我已根據您的指示修改了腳本,現在它看起來像這樣:[link](http://pastebin.com/raw.php?i=efbhNmV7)。但我仍然得到與以前一樣的錯誤:「_)此時不是預期的。」 – eqagunn
刪除括號中的所有標籤,應解決此問題 – jeb
感謝您的幫助jeb。感謝你,我意識到,擺脫嵌套循環是主要問題,我搜索並發現如何去做。這就是代碼現在的樣子,它的工作原理如下:[link](http://pastebin.com/raw.php?i=a1Bsm1TK) – eqagunn