dos2unix 格式转换错误,同时通过 TeamCity 执行



尝试将文件从Windows传输到Unix Azure环境时,我收到错误dos2unix格式错误

dos2unix -o/xyz/home/ABC_efg.txt 未能执行 dos2unix 格式更改。

我试图运行PS脚本来修复它,但似乎确实有效。

Get-ChildItem -File -Recurse *.txt | % { $x = get-content -raw -path $_.fullname; $x -replace "`r`n","`n" | set-content -NoNewline -path $_.fullname }

与其使用-replace,我更愿意将内容读取为字符串数组并用"'n"连接这些字符串。
像这样:

$files = Get-ChildItem -File -Recurse -Filter '*.txt' | Select-Object -ExpandProperty FullName
$files | ForEach-Object { 
(Get-Content -Path $_) -join "`n" | Set-Content -Path $_ -NoNewline -WhatIf
}

如果您对控制台中显示的输出感到满意,请卸下-WhatIf开关。

好吧,部分问题是您将字符串管道传输到Set-Content,然后尝试使用该字符串来确定保存文件的位置。尝试将最后一部分从:

$x -replace "`r`n","`n" | set-content -NoNewline -path $_.fullname

对此:

set-content -NoNewline -path $_.fullname -value ($x -replace "`r`n","`n")

如果这没有像您期望的那样更新格式,您可能需要使用-Encoding参数进行Set-Content。不过,我对编码并不熟悉,所以我不确定。

相关内容

  • 没有找到相关文章

最新更新