我使用以下从文本文件整个负载读取一行,然后总结该信息为一个文件。

$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
}

当我运行代码写输出输出如预期中的所有记录,但出口-CSV仅包含最后一个记录。我在做什么错了?

有帮助吗?

解决方案

您正在覆盖与每个循环迭代csv文件。我相信下面给出假设每个csv文件后,你在做什么只有四列(即计算机,用户,日期,时间):

Get-content computers.txt | foreach-object {
    import-csv "$computer.txt" -Header $header | Select -first 1 
} | Export-csv $users -notype

其他提示

创建一个数组变量并添加每个$ OBJ到它。 foreach循环后,导出对象e.g的阵列:

$arr = @()

foreach (...) {
    ...
    $arr += $obj
}

$arr | Export-csv -path  $users -notype
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top