从 TXT 文件中读取某些单词前后的单词并转换为 CSV
Read words after and before some words from TXT file and Convert 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 的长度。
这里有什么问题?
调用文件“.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
我写了一个脚本,它必须读取 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 的长度。 这里有什么问题?
调用文件“.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