我写了一个脚本,它必须读取txt文件,找到所有在" CN"之后的单词。之前","并将它们导出到csv。
$TXTFile = "C:\original.txt"
Select-String -Path $TXTFile -Pattern 'CN=(.*?),' -AllMatches |
Select-Object -Expand Matches |
ForEach-Object { $_.Groups[1].Value } |
Out-File "C:\Output.txt"
Export-Csv "C:\Output.csv"
问题是" Output.txt"给我正确的结果,但" Output.csv"给了我成立CN的长度。 这有什么不对?
答案 0 :(得分:0)
仅仅调用文件“.csv”来获取csv是不够的。 csv是一个逗号分隔文件,由具有各种属性(列)的数据集(行)组成。
Out-File cmdlet只是生成一个文本文件。要生成csv,请使用Export-CSV。但这仅适用于一组对象作为输入。你只需要一个字符串数组。
我改变了脚本,现在它可以工作了:
Select-String -Path $TXTFile -Pattern 'CN=(.*?),' -AllMatches |
Select-Object -Expand Matches |
ForEach-Object { $_.Groups[1].Value } |
select @{L="UserID"; E={$_}} |
Export-CSV $CSVFile -noTypeInformation