PowerShell v5 UTF8 格式在将 CR LF 转换为 LF 后丢失

PowerShell v5 UTF8 format lost after conversion CR LF to LF

我正在使用 vba 宏编写 PS1 脚本以便 :

但是当我这样做时,我失去了 UTF8 格式。

这是我的代码:

$file = 'C:\Users\c92434\Downloads\run_param_21_04_21\dg_poc_parameter.txt'
(Get-Content $file) | Out-File -Encoding UTF8 $file
((Get-Content $file) -join "`n") + "`n" | Set-Content -NoNewline $file

此致,

朱维泽

您可以一次性完成:

$file = 'C:\Users\c92434\Downloads\run_param_21_04_21\dg_poc_parameter.txt'
(Get-Content -Path $file -Raw) -replace '\r?\n', "`n" | Set-Content -Path $file -NoNewline -Encoding UTF8

Get-Content 上的 -Raw 开关将文件作为一个多行字符串读取。
-replace '\r?\n', "`n" 将所有 CRLF 替换为 LF