Batch file 使用批处理脚本比较两个文件夹中的文件

Batch file 使用批处理脚本比较两个文件夹中的文件,batch-file,file-comparison,Batch File,File Comparison,我必须比较两个文件夹中的文件,它们的文件名如下 福尔德拉:[a.f90,b.f90,…] 文件夹b:[a_recod.f90,b_recod.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 (

我必须比较两个文件夹中的文件,它们的文件名如下

福尔德拉:[a.f90,b.f90,…] 文件夹b:[a_recod.f90,b_recod.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 ) )
这对我没有帮助,谁能帮我做这个比较。

试试这个:

@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%.

感谢您的帮助,现在我还使用以下代码循环浏览文件夹:

@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
   )
)

为什么这不起作用?set/a i=0 set/a i+=1我突然想到,如果对文件进行重新编码,它们将不一样。+1这看起来很好,可以判断文件是否存在-我以为OP想要进行二进制比较。不清楚。