Powershell 这里,字符串在通过管道传输到输出文件时打印额外的行
我正在尝试使用Powershell(我知道,是noob之类的)以编程方式创建一个包含多行内容的文件 我的尝试如下:Powershell 这里,字符串在通过管道传输到输出文件时打印额外的行,powershell,Powershell,我正在尝试使用Powershell(我知道,是noob之类的)以编程方式创建一个包含多行内容的文件 我的尝试如下: $ServicesYaml = @' parameters: twig.config: debug: true auto-reload: true cache: false '@ $ServicesYaml | Out-File -FilePath .\services.yml 当使用写入输出打印到控制台时,这似乎很好: 但在发送到文件时会打印额外的
$ServicesYaml = @'
parameters:
twig.config:
debug: true
auto-reload: true
cache: false
'@
$ServicesYaml | Out-File -FilePath .\services.yml
当使用写入输出打印到控制台时,这似乎很好:
但在发送到文件时会打印额外的行:(使用Atom查看):
我做错了什么?很明显,我不希望所有不可打印的和额外的空白都被打印出来。这是GIT和Windows文本文件字节顺序标记的Linux特性的冲突。Out-File命令使用GIT不支持的Windows编码(USC-2 LE BOM),GIT将文件视为二进制文件而不是文本。尝试使用Set-Content commandlet,它使用UTF-8而不使用
您还可以将-Encoding
参数与Out File
或Set Content
一起使用来控制编码。值得注意的是:最后一行也可以写成Set Content-Path。\services.yml-Value$ServicesYaml
$ServicesYaml = '
parameters:
twig.config:
debug: true
auto-reload: true
cache: false
'
$ServicesYaml | Set-Content -FilePath .\services.yml