Here-String在通过管道输出到Out-File时打印额外的行

时间:2016-08-01 20:01:54

标签: powershell

我试图使用Powershell(我知道,noob的东西)用多行内容编写程序来创建一个文件。

我的尝试如下:

$ServicesYaml = @'
parameters:
  twig.config:
    debug: true
    auto-reload: true
    cache: false
'@
$ServicesYaml | Out-File -FilePath .\services.yml

使用Write-Output打印到控制台时,这似乎很好: Here-String Console Output

但是在发送到文件时打印出额外的行:(使用Atom查看): enter image description here

我做错了什么?我显然不想要所有看似打印的不可打印和额外的空白。

1 个答案:

答案 0 :(得分:2)

这是GIT和Windows文本文件字节顺序标记的linuxy性质的冲突。 Out-File命令行开关使用GIT不支持的Windows编码(USC-2 LE BOM),GIT将文件视为二进制而不是文本。尝试使用不带BOM

的UTF-8的Set-Content命令行开关
$ServicesYaml = '
parameters:
    twig.config:
    debug: true
    auto-reload: true
    cache: false
'
$ServicesYaml | Set-Content -FilePath .\services.yml