用cmd的FC命令 对比两个文件夹内容不同并将文件名输出到文件中

该脚本展示了如何使用CMD的FC命令来比较两个文件夹的内容,并将不同的文件名输出到一个文件中。通过遍历每个文件夹,生成包含所有文件的列表,然后比较这些列表找出差异,并在不存在于另一文件夹中的文件或内容不相同的文件上执行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@echo off

set INP1=D:\test\diff1\
set INP2=D:\test\diff2\

rem 分别将文件夹中的文件读取到文本里

dir /S/B /A:A %INP1%release >> file_list1.txt
dir /S/B /A:A %INP2%release >> file_list2.txt
rem fc /n /w file_list1.txt file_list2.txt >> file_hikaku_kekka.txt

rem 对第一个文件循环取出文件路径,有空格的也可以取出

for /F "usebackq delims=" %%a in ("file_list1.txt") do (

  setlocal enabledelayedexpansion
  echo %%a
  set ss=%%a

  rem 将第二文件路径置换到第一文本的文件路径
  set dd=!ss:%INP1%=%INP2%!
  echo !dd!
  rem echo !ss:~,27!
  rem 判断这个文件在第二文件夹中存在不,不存在直接将文件列出,存在的话两个文件进行对比
  IF not exist !dd! (echo !ss! >>relust.txt
  ) ELSE ( fc /n /w "!ss!" "!dd!" > temp.txt
  set result=0
  FOR /F "skip=1 tokens=2" %%F IN (temp.txt) DO IF %%F.==相違点は検出されませんでした. SET result=1
  echo !result!
  IF !result!.==0. echo %%a,!dd! >>relust.txt )

)

 rem 判断第二个文件夹中的文件在第一文件夹中存在不,不存在直接将文件列出

 for /F "usebackq delims=" %%b in ("file_list2.txt") do (
 
   setlocal enabledelayedexpansion
   echo %%b
   set ss=%%b
   set dd=!ss:%INP2%=%INP1%!
   echo !dd!
   
   IF not exist !dd! echo !ss! >>relust.txt
 
 )
 
 set /p owari="比較終了。"


pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值