0

フォルダー オブジェクトのリストを、フォルダーのプロパティを示す xml ファイルに読み込むスクリプトを作成しました。また、後で別の xml ファイルを作成します。デルタ xml ファイルが作成されたら、両方の xml ファイルをインポートし、フォルダー名に基づいてそれらを比較して、削除または削除されたフォルダーを表示し、結果を html 形式でファイルに保存して表示します。すべてうまくいきますが、結果の値の一部を置き換えたいと思います。比較オブジェクトcmd-let を使用すると、いくつかの属性を表示できますが、デルタ ファイルに追加されたフォルダーの場合は => を、デルタ ファイルで削除されたフォルダーの場合は <= を配置することで、変更がどちら側にあったかがわかります。SideIndicator の列名を置き換えて、=> または <= の値をより直感的なものに置き換えたいと思います。-Replace {$_ $original, $newvalue} タイプのメソッドを使ってみました。Hey Scripting Guy のブログや他のいくつかの例でガイダンスを見つけましたが、どれも私の思いどおりにはいかないようでした。これにアプローチする最良の方法は何ですか?現在、比較結果を保存しておらず、フォーマットして HTML に変換しているだけです。アドバイスをいただければ幸いです。必要に応じてコードを投稿できますが、それは約 60 行の長さであり、これを達成するための最良の方法を本当に探しています。コードを書く必要はありません。

ありがとう!

4

2 に答える 2

0

それは 1 つのアプローチですが、次のようにして html レポートを変更することになりました。

(Get-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm) | 
Foreach-Object {$_ -replace "SideIndicator", "Change Status"} |
Set-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm
(Get-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm) |
Foreach-Object {$_ -replace "=&gt;", "New"} |
Set-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm
(Get-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm) | 
Foreach-Object {$_ -replace "&lt;=", "Removed"} |
Set-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm 

私が探していた 3 つの異なる部分を置き換える 1 つのステートメントとしては、うまく機能していないように思われました。最終的にはそれをいじって、いくらか合理化しますが、今のところ、私が望むことはできます。

于 2011-05-26T18:09:33.917 に答える
0

出力表示の列名だけを置き換えたい場合は、カスタム テーブルを作成できます。

http://gallery.technet.microsoft.com/scriptcenter/ed188912-1a20-4be9-ae4f-8ac46cf2aae4

于 2011-05-24T15:15:41.343 に答える