2013-10-01 208 views
0

兩個文件夾比較文件我的文件進行比較,其中有像使用批處理腳本

folderA文件名的兩個文件夾:[a.f90,b.f90,...] FolderB中:[a_recoded。 f90,b_recoded.f90,...]

我想比較folderA中的a.f90與folderB中的a_recoded.f90。

是幹什麼用的是:

@echo off 
set folderA=D:\folderA 
set folderB=D:\folderARenamed 
set /a i=0 
set /a j=0 
cd %folderA% 
FOR %%f in (*.f90) DO (set /a i+=1 & for %%r in (%folderB%\*.f90) DO (set /a j+=1 & if %i% EQU %j% FC %%f %% r)) 

它並不能幫助我,誰能幫助我如何做到這一點comparsion。

+0

爲什麼這是不工作? set/a i = 0 set/a i + = 1 – Thiru

+0

這讓我很震驚,如果這些文件被重新編碼,它們將不會相同。 – foxidrive

回答

2

試試這個:

@echo off &setlocal 
set "folderA=D:\NONMEM7.3beta7.0" 
set "folderB=D:\NONMEM7.3beta7.0Renamed" 
for %%a in ("%folderA%\*.f90") do if not exist "%folderB%\%%~na_recoded%%~xa" echo %%~na_recoded%%~xa not found in %folderB%. 
for %%a in ("%folderB%\*.f90") do for /f "delims=_" %%b in ("%%~na") do if not exist "%folderA%\%%~b%%~xa" echo %%~b%%~xa not found in %folderA%. 
+1

+1這看起來不錯,可以判斷這些文件是否存在 - 我認爲OP希望做一個二進制比較。目前尚不清楚。 – foxidrive

0

感謝您的幫助,我現在通過文件夾也可以使用下面的代碼迴路:

@echo off 
set vss=D:\FolderA 
set renamed=D:\FolderARenamed 

cd %renamed% 
FOR /D %%d in (*) DO (
    cd %renamed%\%%d 
    FOR %%f in (*.f90, *.f, *.c) DO (
     if exist %vss%\%%d\%%f fc %%f %vss%\%%d\%%f 
     if not exist %vss%\%%d\%%f fc %%f %vss%\%%d\%%~nf_Recoded.f90 
    ) 
)