【发布时间】:2018-05-10 18:58:03
【问题描述】:
我想将文件模板加载到变量中,修改变量内的数据并将修改后的模板输出到变量的新位置。
问题是 PowerShell 正在从我的模板中删除换行符。
输入文件(模板文件)具有 Unix 行结尾,这也是输出所必需的,因为修改版本的接收者是基于 Unix 的系统。
我有以下代码,它会生成一个连接的单行代码:
[String] $replacement = "Foo Bar"
[String] $template = Get-Content -Path "$pwd\template.sh" -Encoding UTF8
$template = $template -replace '<REPLACE_ME>', $replacement
$template | Set-Content -Path "$pwd\script.sh" -Encoding UTF8
有模板输入:
#!/bin/sh
myvar="<REPLACE_ME>"
echo "my variable: $myvar"
exit 0
导致:
#!/bin/sh myvar="Foo Bar" echo "my variable: $myvar" exit 0
在我看来,某处 LF 被一个简单的空格所取代。最后在脚本末尾添加了一个CR LF,模板文件中没有。
如何保留行尾并防止在最终脚本中添加更多 (CR LF)错误行尾?
【问题讨论】:
标签: powershell newline