Powershell Out-File 带双引号的字符串转换为单列 CSV
Powershell Out-File String with Double Quotes into Single Column CSV
我想知道如何使用 PowerShell Out-File 将带双引号的字符串转换为单列 CSV。
这是我正在使用的 csv 文件 header:
Name | output 1 | output 2 | output 3 |
这是我目前拥有的 PowerShell 代码:
$name = 'Peter Parker'
$out1 = 'testing'
$out2 = -join('"',"21,22,23", '"');
$out3 = 'output'
$text = "$name, $out1, $out2, $out3"
Write-Output $text
$text | Out-File .\test.csv -Encoding ascii -Append
Get-Content -Path .\test.csv
我要找的结果是这样的:
Name | output 1 | output 2 | output 3 |
Peter Parker | testing | "21, 22, 23" | output |
但我得到的是当前代码的结果:
Name | output 1 | output 2 | output 3 |
Peter Parker | testing | "21 | 22 | 23" | output |
有没有办法或解决方法来实现我的 objective?
谢谢!
为什么不让 Powershell 为您完成这项工作? Powershell 能够轻松处理结构化数据和 csv 文件。
示例:
[PSCustomObject]@{
Name = 'Peter Parker'
out1 = 'testing'
out2 = ('"', "21,22,23", '"') -join ''
out3 = 'output'
} |
Export-Csv -Path .\test.csv -NoTypeInformation -Delimiter ','
当然,您可以轻松地再次导入此数据:
Import-Csv -Path .\test.csv -Delimiter ','
结果将是:
Name out1 out2 out3
---- ---- ---- ----
Peter Parker testing "21,22,23" output
您可能会记住,Powershell 是为管理员设计的,而不是为软件开发人员设计的。它试图让你的事情变得容易。 ;-)
我想知道如何使用 PowerShell Out-File 将带双引号的字符串转换为单列 CSV。
这是我正在使用的 csv 文件 header:
Name | output 1 | output 2 | output 3 |
这是我目前拥有的 PowerShell 代码:
$name = 'Peter Parker'
$out1 = 'testing'
$out2 = -join('"',"21,22,23", '"');
$out3 = 'output'
$text = "$name, $out1, $out2, $out3"
Write-Output $text
$text | Out-File .\test.csv -Encoding ascii -Append
Get-Content -Path .\test.csv
我要找的结果是这样的:
Name | output 1 | output 2 | output 3 |
Peter Parker | testing | "21, 22, 23" | output |
但我得到的是当前代码的结果:
Name | output 1 | output 2 | output 3 |
Peter Parker | testing | "21 | 22 | 23" | output |
有没有办法或解决方法来实现我的 objective?
谢谢!
为什么不让 Powershell 为您完成这项工作? Powershell 能够轻松处理结构化数据和 csv 文件。
示例:
[PSCustomObject]@{
Name = 'Peter Parker'
out1 = 'testing'
out2 = ('"', "21,22,23", '"') -join ''
out3 = 'output'
} |
Export-Csv -Path .\test.csv -NoTypeInformation -Delimiter ','
当然,您可以轻松地再次导入此数据:
Import-Csv -Path .\test.csv -Delimiter ','
结果将是:
Name out1 out2 out3
---- ---- ---- ----
Peter Parker testing "21,22,23" output
您可能会记住,Powershell 是为管理员设计的,而不是为软件开发人员设计的。它试图让你的事情变得容易。 ;-)