問題タブ [compareobject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - powershell 比較オブジェクトの出力の問題
以下のスクリプトを実行し、結果をテキスト ファイルに書き込むことで、2 つの長いテキスト ファイルを比較しています。予想される標準の比較オブジェクト出力の代わりに、その一部を取得し、他のすべてをトリミングします (最大文字数の制限または書式テンプレートなどにより)。生の出力をファイルに書き込む方法、または行の文字数の制限を増やして正しい結果を得る方法はありますか? 私が比較するファイルは、どのような方法でも短縮または再フォーマットすることはできません.compare-object関数の代わりに何か他のものを使用できますか?
ありがとうございました!
脚本:
出力:
powershell - AD コンピューターの 2 つの PowerShell スクリプトの出力を比較する
2 つの PS スクリプトがあります。1 つは SharePoint 上のコンピューターのリストから読み取り、結果を出力し、もう 1 つは Active Directory からコンピューターのリストを出力します。
私がする必要があるのは、これらのリストの両方を何らかの形で比較して確認することです: a) リスト A にリスト B にリストされていないコンピューターがある場合、および b) リスト B にリスト A にリストされていないコンピューターがある場合
これは、Compare-Object コマンドレットと配列を使用して可能であると想定していますが、私は PS にあまり詳しくなく、ここからどこへ行くべきかわかりません。
ADからコンピューターのリストを取得するには、次を使用します。
私が使用するSharepointからコンピューターのリストを取得するには:
powershell - Compare-Object が間違った値を返す
PowerShell スクリプトに取り組んでいますが、Compare-Object
コマンドレットが期待どおりの結果を返しません。スクリプト全体をここに記載することはしませんが、これが一般的な考え方です。
これで、一連のファイルの名前、長さ、および最終書き込み時刻を含む 2 つの並べ替えられた PSCustomObjects ができました。これが私が理解できないものです。
オブジェクトが同一である場合は、Compare-Object
予想どおり何も返しません。ただし、以下の例を使用します。
$knownFileObject
次のようになります。
$currentFileObject
次のようになります。
私が走れば
これを返します:
2 つのオブジェクト間に違いがあることは確実に検出されますが、実際に異なるレコードではなく、常に最後の行だけが返されます。変更されたファイルが 2 つある場合は、最後の 2 行を返します。に を追加する"-property Name"
とCompare-Object
、正しいファイル名が返されますが、サイズと書き込み時間の違いも探す必要があります。Export-Csv
両方のオブジェクトをファイルに書き戻し、それらのファイルで実行Compare-Object
することができGet-Content
ます。これはうまく機能しますが、このジョブは数百回実行されるため、2 つのファイルをディスクに書き込む必要はありません。異なるフォルダーでの 1 分あたりの回数。
編集:提案の 1 つに従って、私も試してみましCompare-Object ... -Property Name, Length, LastWriteTimeUtc
た。それを行うと、両方のオブジェクトのすべてのアイテム、または 100% の不一致が返されます。
私は何を間違っていますか?
powershell - 比較オブジェクトのオブジェクトを返すスクリプトブロック
比較オブジェクトを介して 2 つのサンバの場所を比較するスクリプトを作成しています。
スピードアップするために、スレッドを介して各場所をスクリプトブロックに渡し、そこでオブジェクトを作成したいと思います。その後、スクリプト ブロックからの出力をオブジェクトとして、Compare-Object コマンドレットで使用したいと考えています。
私がソファを持っているもの:
そのため、これをどこかに追加する必要があります。
しかし、test と test2 の結果はハッシュテーブル (だと思いますか?) であり、オブジェクトではありません。
私がどこで間違ったのか、またはどうすれば別の方法でそれを行うことができるかについて、任意の入力をいただければ幸いです