通过 TeamCity 执行时出现 dos2unix 格式转换错误
dos2unix format conversion error while execution through 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 }
嗯,问题的一部分是您将字符串传输到 Set-Content
,然后尝试使用该字符串来确定文件的保存位置。尝试更改最后一部分:
$x -replace "`r`n","`n" | set-content -NoNewline -path $_.fullname
对此:
set-content -NoNewline -path $_.fullname -value ($x -replace "`r`n","`n")
如果没有像您期望的那样更新格式,您可能需要为 Set-Content
使用 -Encoding
参数。不过我对编码不是很熟悉,所以我不确定。
而不是使用 -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
开关。
尝试将文件从 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 }
嗯,问题的一部分是您将字符串传输到 Set-Content
,然后尝试使用该字符串来确定文件的保存位置。尝试更改最后一部分:
$x -replace "`r`n","`n" | set-content -NoNewline -path $_.fullname
对此:
set-content -NoNewline -path $_.fullname -value ($x -replace "`r`n","`n")
如果没有像您期望的那样更新格式,您可能需要为 Set-Content
使用 -Encoding
参数。不过我对编码不是很熟悉,所以我不确定。
而不是使用 -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
开关。