2

以下を使用して、大量のテキスト ファイルから 1 行を読み取り、その情報を 1 つのファイルにまとめています。

$computers = Get-content computers.txt
$users = users.csv
$header = 'Computer','User','Date','Time'

Foreach ($computer in $computers)
{
$file = $computer +'.txt'

$a = import-csv $file -Header $header | Select -first 1 
$obj = New-Object PSObject
$obj | Add-Member NoteProperty Computer ($a.Computer)
$obj | Add-Member NoteProperty User ($a.User)
$obj | Add-Member NoteProperty Date ($a.Date)
$obj | Add-Member NoteProperty Time ($a.Time)

Write-Output $obj
$obj | Export-csv -path  $users -notype
}

コードを実行すると、Write-Output は期待どおりにすべてのレコードを出力しますが、Export-CSV には最後のレコードしか含まれていません。私は何を間違っていますか?

4

2 に答える 2

4

ループの繰り返しごとにcsvファイルを上書きしています。各csvファイルに4つの列(つまり、コンピューター、ユーザー、日付、時刻)しかないと仮定した後、次のようになります。

Get-content computers.txt | foreach-object {
    import-csv "$computer.txt" -Header $header | Select -first 1 
} | Export-csv $users -notype
于 2009-06-09T11:58:54.097 に答える