如何在powershell中添加引号和逗号

How to add quotes and commas in powershell

我有一个 CSV 文件,其中我只需要 1 个 Column Called "SerialNumber" 我需要合并文本行,删除任何空白 space,将每一行添加到引号中并用逗号分隔。

到目前为止,我有好几英里的代码都可以运行,但它在末尾添加了引号,而没有在开头添加引号。

$SerialList = import-csv .\log.csv | select -ExpandProperty Serialnumber | Out-File -FilePath .\Process.txt
(gc process.txt) | ? {$_.trim() -ne "" } | set-content process.txt
gc .\process.txt | %{$_ -replace '$','","'} | out-file process1.csv
Get-Content .\process1.csv| foreach {
$out = $out + $_
}
$out| Out-File .\file2.txt

输出:

SerialNumber

1234

1234

4567

4567

预期输出:

"1234","1234","4567","4567"

尝试以下 (PSv3+):

(Import-Csv .\log.csv).SerialNumber -replace '^.*$', '"$&"' -join "," > .\file2.txt
  • (Import-Csv .\log.csv).SerialNumber 导入 CSV 文件,.SerialNumber 使用 member-access enumerationSerialNumber 列值提取为数组。

  • -replace '^.*$', '"$&"' 将每个数组元素包含在 "...".

    • Regex ^.*$ 完全匹配每个数组元素。
    • 替换表达式 "$&" 将元素替换为包含在 " 个字符中的匹配项 ($&)。 - 有关背景,请参阅
  • -join ",", 作为分隔符连接生成的数组元素。