4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Export-CsvでCSV出力する際に二重引用符を外す[PowerShell]

Posted at

PowerShellでCSV出力する方法はいくつかありますが、一番簡単なのはExport-Csvを利用することかと思います。

Get-Process | Select-Object Id, CPU | Export-Csv ".\process.csv" -Encoding UTF8

しかしこのExport-Csv、デフォルトでカラムにダブルクォーテーション(二重引用符)を付加してくれます。

process.csv(抜粋)
"Id","CPU"
"9464","1.15625"
"18128","1.21875"
"5012",
"22976","1.21875"
"4940",
...

そしてExport-Csvにはダブルクォーテーションを外す機能はなく、(私の知る限りでは)後から自力で外すしかありませんでした。調べてみるとStack Overflowでも皆さま自力でやっていたようですね。

powershell - ConvertTo-Csv Output without quotes - Stack Overflow

今回私にもそんな機会が訪れたので改めて調べてみた訳ですが、なんと!Export-Csvにダブルクォーテーションを有無を指定できるパラメータが PowerShell 7 にて追記されておりました。(どのバージョンで追加されたかは未確認です)

Add UseQuotes parameter by iSazonov · Pull Request #8951 · PowerShell/PowerShell
Add QuoteFields parameter to ConvertTo-Csv and Export-Csv by iSazonov · Pull Request #9132 · PowerShell/PowerShell

PowerShell 7.0.0 にて確認してみます。

Get-Process | Select-Object Id, CPU | Export-Csv ".\process.csv" -Encoding UTF8 -UseQuotes Never
process.csv(抜粋)
Id,CPU
9464,1.15625
18128,1.21875
5012,
22976,1.21875
4940,
...

以上のようにダブルクォーテーションなしで出力することができました。
自力で頑張る必要がなくなったので非常にありがたいですね。

参考URL

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?