複数のファイルのプロパティを比較するバッチファイルを作成しました。私はすべてを比較しますバッチファイルとプロパティファイルの比較[初心者]
ファイルは同じフォーマットを以下に示します: はプロパティ1 = PROP1 property2 = PROP2 ...私の出力の場合
は、私が唯一の相違点とラインのように表示されるようになります。私はFCコマンドを使ってみましたが、違いがある行の前後に行が含まれているようです。
違いがある行だけを表示する方法はありますか?代わりFC.EXE
の
複数のファイルのプロパティを比較するバッチファイルを作成しました。私はすべてを比較しますバッチファイルとプロパティファイルの比較[初心者]
ファイルは同じフォーマットを以下に示します: はプロパティ1 = PROP1 property2 = PROP2 ...私の出力の場合
は、私が唯一の相違点とラインのように表示されるようになります。私はFCコマンドを使ってみましたが、違いがある行の前後に行が含まれているようです。
違いがある行だけを表示する方法はありますか?代わりFC.EXE
の
、使用Compare-Object
cmdletpowershell.exe
から:
詳細な説明
Compare-Object
レットは、オブジェクトの二組の比較: "基準設定" されている オブジェクトの一組をもう1組は 「差異セット」です。比較の結果は、(プロパティ値 が
のみ設定差分からオブジェクトに、のみ( <=
記号で示される)参照セットからオブジェクトに
- 登場するかどうかを示します
=>
シンボル)、またはIncludeEqual
パラメータが指定されている場合は- の両方のオブジェクト(
==
シンボルで示されます)に指定します。
@ECHO OFF
SETLOCAL EnableExtensions
rem change next two `set` commands to meet your circumstances:
set "_refFile=%temp%\ReferenceFile.txt"
set "_difFile=%temp%\DiferenceFile.txt"
powershell -command Compare-Object^
-ReferenceObject $(Get-Content "%_refFile%")^
-DifferenceObject $(Get-Content "%_difFile%") ^| Format-Table -AutoSize
すぎる手ごわいですか?ちょうど(オープンcmd
ウィンドウから)を使用:
powershell -c compare (type file1.txt) (type file2.txt) ^| FT -auto
あるいは:
powershell -c diff (gc file1.txt) (gc file2.txt)
注:
Get-Content
cmdlet指定さ 場所でアイテムの内容を取得しますファイル内のテキストなどのパスによって表示されます。コンテンツを一度に1行ずつ と読み込み、それぞれがコンテンツの行を表す のオブジェクトのコレクションを返します。
Format-Table
cmdletは、コマンドの出力を、各列のオブジェクトの選択されたプロパティを持つ テーブルとして書式設定します。 オブジェクトタイプは、デフォルトのレイアウトと各列に表示される のプロパティを決定しますが、 にはProperty
パラメータを使用して、表示するプロパティを選択できます。
私は 'powershell -c compare(gc file1.txt)(gc file2.txt)^を使用しました。 FT -auto'どうすればSideIndicator列を取り除くことができますか?また、 '-c'コマンドは何をしますか? – Alan
そして、私のすべてのプロパティの上にある "InputObject"テキストを取り除くことは可能ですか? – Alan
@Alan _Format-Table'コマンドレットへのリンクを読んでください。 '-HideTableHeaders'と' -Property'に注目してください。それで、あなたは '...^| FT -Auto -Hide -Property InputObject'を選択します。 '-c'の意味は' powershell /? 'の' -command'パラメータの説明を参照してください。 – JosefZ