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

时间:2021-04-21 08:56:45

标签: vba powershell encoding utf-8

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

  • 首先将我的txt文件转换为UTF8格式
  • 其次,将 CR LF 转换为 LF。

但是当我这样做时,我失去了 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

最好的问候,

Jouvzer

1 个答案:

答案 0 :(得分:1)

您可以一次性完成:

$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

相关问题