Если вы используете только Out-File
, потому что ваша версия PowerShell не включает параметр -Encoding
с Set-Content
, тогда она должна выглядеть следующим образом:
@"%__AppDir__%WindowsPowerShell\v1.0\powershell.exe" -NoProfile -Command "Get-Content -Path '.\ZipCode.csv' | Out-File -FilePath '.\ZipCode1.csv' -Encoding UTF8"
Очевидно, что если у вас есть Версия PowerShell, где Set-Content
имеет обязательную опцию -Encoding
, используйте ее вместо:
@"%__AppDir__%WindowsPowerShell\v1.0\powershell.exe" -NoProfile -Command "Get-Content -LiteralPath 'ZipCode.csv' | Set-Content -LiteralPath 'ZipCode1.csv' -Encoding UTF8"
Очевидно, что они могут быть сокращены, чтобы удалить надежность и использовать псевдонимы / сокращения:
@PowerShell -NoP "GC '.\ZipCode.csv'|Out-File '.\ZipCode1.csv' -E UTF8"
@PowerShell -NoP "GC -LP 'ZipCode.csv'|SC -LP 'ZipCode1.csv' -En UTF8"
Я предпочитаю использовать -LiteralPath
, потому что у меня есть тенденция использовать []
в именовании моих файлов, и это может быть проблематично c в именах файлов. Измените имя выходного файла на ZipCode[1]
, затем попробуйте код версии -Set-Content
с -Path
или ничего вместо опции -LiteralPath
/ -LP
, и вы поймете, что я имею в виду.