ファイルから追加のデータを取得し、統合してからエクスポートするために、エクスポート前にデータを収集する方法を見つけようとしています。
私のコードは次のようなものです: 多くのソースからユーザーとコンピューターを検索し、データを統合する → 2 列 (name,computer) の配列を作成する → そのデータを output.log にエクスポートする
探しているデータは時々動的に変化するため、スクリプトを1日に複数回実行したいので、次回はoutput.logから配列にデータを取得します→新しいデータの収集を続け、それらを既存の出力に追加します。ログ。
現時点では、コードを実行するたびに output.log が上書きされる場所に行き詰まっています。
私のコードは次のようなものです:
Set-Variable -Name Computer -Value @("pc1","pc2")
Set-Variable -Name LogNames -Value @("something")
$el_c = @()
foreach ($comp in $Computer) {
foreach ($log in $LogNames) {
$el = ... # get data I need from $comp
$el_c += $el #consolidating
}
}
$el_c | %{
$_ | select @{n='Name';e={$_.Properties[0].value}}, @{n='Computer';e={$_.Properties[1].value}}
} | Export-Csv "C:\test\OutputRaw.log"
$input = 'C:\test\OutputRaw.log' #TO FILTER OUT DUPLICATION
$inputCsv = Import-Csv $input | Sort-Object * -Unique
$inputCsv | Export-Csv "C:\test\OutputFinal.log" -NoTypeInformation
出力は次のとおりです。
「名前」、「コンピューター」 「ダン」、「PC1」 「トム」、「PC2」
ファイルに抽出する前に、「output.log」からデータを取得し、新しく収集されたデータにマージ/追加/統合する前に、どのように実装できますか?