1

Out-File这是关于字符串值的限制和将字符串值转换为要使用的对象的两部分问题Export-CSV

我正在编写一个脚本来提取各种信息并将其添加到现有的 csv 文档中。我目前正在使用Out-File,但我认为它没有所需的功能。

$date, $computerName, $env:UserName, 'error' | Out-File $report -Append

以上将所有数据添加到单个列中,例如:

date
computername
username
error

我希望它阅读:

date computername username error

我试过使用Export-CSV,但由于我的变量是字符串,它只写字符串长度而不是变量。我很高兴Export-CSV-Append只要它正确报告项目,

如果我们可以让表格具有以下标题,则可以加分:

date computername username error
8/15/2018 A1 Bob PowerIssue
8/15/2018 A2 Tom InternetIssue
4

1 回答 1

4

$date, $computerName, $env:UserName, 'error'是一个正在转换为字符串数组的集合。因此,然后Out-File取出该数组的每个元素并每行吐出一个元素。

您可以生成单个字符串。例如,

"$date, $computerName, $env:UserName, error" | Out-File $report -Append

但更好的方法是制作一个对象,然后将其导出到 csv。[pscustomobject]这是一个需要 PS3+的示例

$ExampleObjects = @(
    [pscustomobject]@{
        Date         = Get-Date
        ComputerName = 'A1'
        UserName     = 'Bob'
        Error        = 'PowerIssue'
    },
    [pscustomobject]@{
        Date         = Get-Date
        ComputerName = 'A2'
        UserName     = 'Tom'
        Error        = 'InternetIssue'
    }
)

$ExampleObjects | Export-CSV $report -Append -NoTypeInformation
于 2018-08-15T21:06:06.103 回答