使用批处理脚本
问题描述:
两个文件夹比较文件我的文件进行比较,其中有像使用批处理脚本
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。
答
试试这个:
@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
答
感谢您的帮助,我现在通过文件夹也可以使用下面的代码回路:
@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 – Thiru
这让我很震惊,如果这些文件被重新编码,它们将不会相同。 – foxidrive