Windows fc无差异时忽略输出

Windows fc ignore output when no difference

我在 Windows 下使用 FC filename1 filename2 >> myLog.txt(其中存在 myLog.txt)命令来比较两个文件。我在循环中使用该命令,因此我可以比较多对文件。

我想在FC输出时忽略输出:

Comparing files filename and filename2
FC: no differences encountered

因为它用不需要的信息淹没了输出文件。

我该怎么做? 如果可能的话,我可以计算“successfull”(我忽略的输出)比较的次数吗?

我尝试使用 FC filename1 filename2 2> myLog.txt 仅重定向错误流,但它不输出任何内容,这意味着该命令仅输出到标准流。

你没有具体说明你是如何"use the command in a loop so I could compare many pairs of files"(循环中每一对的second文件是怎么得到的?),所以必须修改下面的代码因此。

@echo off
setlocal

set successfull=0
(for %%a in (filename1*.txt) do (
   FC "%%a" "%%~Na2.txt" > diffs.tmp
   if errorlevel 1 (
      type diffs.tmp
   ) else (
      set /A successfull+=1
   )
)) > C:\other\folder\myLog.txt
del diffs.tmp

echo Successfull compares: %successfull%

如果 myLog.txt 文件必须随该程序的每个 运行 一起增长,那么只需将 > 重定向更改为 >>追加一个...

通过管道将 FC 的输出传输到 FIND /V 或 FINDSTR /V 很容易做到。查看这些命令的帮助。如果您还有其他问题,请 post 您的代码。