2017-04-17 8 views
0

Windowsでは、2つのファイルを比較するために、FC filename1 filename2 >> myLog.txt(ここではmyLog.txt)コマンドを使用しています。私はループでコマンドを使用するので、多くのペアのファイルを比較できます。Windows fc無視しない場合の出力

私は出力を無視したいときFC出力:

Comparing files filename and filename2 
FC: no differences encountered 

それは不必要な情報を持つ出力ファイルをフラッディングするので。

どうすればいいですか? 可能であれば、 "successfull"(私が無視する出力)の数を比較できますか?

私はFC filename1 filename2 2> myLog.txtでエラーストリームのみをリダイレクトしようとしましたが、何も出力しません。つまり、コマンドは標準ストリームに出力します。

+0

おそらく、 'FC'出力を一時ファイルに書き込むことができます。保存したいと判断したら、一時ファイルをmyLog.txtファイルに追加することができます。これはカウントを増やす場所にもなります。 – lit

+0

'fc'は違いがあった場合に' ErrorLevel'を設定し、それ以外の場合はクリアします。 – aschipfl

答えて

2

ループ内のコマンドをどのように使用するかを指定していないため、多くのファイルペアを比較することができます(の2番目のファイルをループ内でどのように取得しますか?)。それに応じて以下のコード。

@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ファイルは、ただ>> 1 ...

にFCの配管出力によって行うのに十分簡単
+0

それでは、 "FC filename1 filename2 2> myLog.txt"の代わりにエラーストリームをリダイレクトしました)私はちょうどerrorlevelフラグが1に上昇しているかどうか確認する必要がありますか? –

1

を追加することにより、>リダイレクトを変更するには、各実行このプログラムのと一緒に成長しなければならない場合FIND/VまたはFINDSTR/V。これらのコマンドのヘルプを調べてください。ご質問がある場合は、コードを投稿してください。

+0

違いが見つからない場合、 'FIND/V'または' FINDSTR/V'を使用して 'FC filename1 filename2'出力から最初の行("ファイル名とファイル名2を比較する ")を削除する方法を教えてください。 – Aacini

+0

FCファイル名1ファイル名2 | FIND/I/V「相違はありません」 – RGuggisberg

+0

OPのリクエストとコメントの両方を_carefully_読むことをお勧めします!あなたの "解決策"は、 'FC'コマンド出力の最初の行を取り除くことはできません。ここでは、'ファイル名とファイル名の比較 'を例にしています! – Aacini

関連する問題