从TXT文件中的某些单词之后读取单词并转换为CSV

时间:2018-02-07 14:03:28

标签: regex powershell export-to-csv

我写了一个脚本,它必须读取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的长度。 这有什么不对?

1 个答案:

答案 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