如何使 "Export-CSV" 导出仅引用文本?

How to make "Export-CSV" export quoting only texts?

我有一个包含以下数据的输入文件:

cod_uf;uf;nome_uf;pop_estimada
11;RO;Rondônia;1796460
12;AC;Acre;894470
13;AM;Amazonas;4207714

发出命令 Import-Csv ".\in.csv" -Delimiter ";" | Export-Csv ".\out.csv" -NoTypeInformation -Encoding utf8 产生:

"cod_uf","uf","nome_uf","pop_estimada"
"11","RO","Rondônia","1796460"
"12","AC","Acre","894470"
"13","AM","Amazonas","4207714"

这很好,但如果只引用非数字字段会更好,如下所示:

"cod_uf","uf","nome_uf","pop_estimada"
11,"RO","Rondônia",1796460
12,"AC","Acre",894470
13,"AM","Amazonas",4207714

我在 documentation 中找不到任何提及或示例来产生所需的输出。

引用非数字字段在使用 python 的 csv library, where one could set the reader 将所有非引用字段转换为 float 类型时很有用。

您可以尝试这样的操作:

$csv = @'
cod_uf;uf;nome_uf;pop_estimada
11;RO;Rondônia;1796460
12;AC;Acre;894470
13;AM;Amazonas;4207714
'@ | ConvertFrom-Csv -Delimiter ';'

($csv | ConvertTo-Csv) -replace '"([0-9]+)"','' | Out-File .\out.csv