Если в вашей системной локали символ ListSeparator - это НЕ запятая, двойной щелчок по файлу csv с разделителями-запятыми откроет Excel со всеми значениями в том же столбце.
Я считаю вот что здесь происходит.
Вы можете проверить, набрав
[cultureinfo]::CurrentCulture.TextInfo.ListSeparator
в PowerShell.
Чтобы Excel «понимал» CSV при двойном щелчке по нему, добавьте -UseCulture
переключиться на командлет:
Export-Csv 'C:\Temp\test.csv' -UseCulture -NoTypeInformation
Что касается кавычек вокруг значений:
Они не всегда необходимы, но иногда обязательно , например, если значение имеет начальные или конечные символы пробела, или если значение содержит сам символ разделителя.
Просто оставьте их как есть, Excel знает, как с этим справиться.
Если вы действительно не можете устоять перед наличием csv без кавычек, пожалуйста, сначала посмотрите ответы, приведенные здесь по этому вопросу.
Изменить Если вы абсолютно уверен все поля могут обойтись без цитируя, вы можете сделать это:
$sep = [cultureinfo]::CurrentCulture.TextInfo.ListSeparator
"1,2,3", "A,B,C" -replace ',', $sep | Out-File -FilePath 'D:\Test\file.csv' -Encoding utf8