首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过dos2unix执行时TeamCity格式转换错误

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

Stack Overflow用户
提问于 2019-12-12 18:37:58
回答 2查看 166关注 0票数 1

当试图将文件从Windows传输到Unix环境时,我收到了错误的dos2unix格式错误

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

我试着运行一个PS脚本来修复它,但是看起来确实有效。

代码语言:javascript
复制
Get-ChildItem -File -Recurse *.txt | % { $x = get-content -raw -path $_.fullname; $x -replace "`r`n","`n" | set-content -NoNewline -path $_.fullname }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-14 15:36:59

与使用-replace不同,我更愿意将内容读入字符串数组,并使用“‘n”连接这些字符串。

就像这样:

代码语言:javascript
复制
$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开关。

票数 0
EN

Stack Overflow用户

发布于 2019-12-12 20:12:44

嗯,部分问题是,您正在将一个字符串传输到Set-Content,然后尝试使用该字符串来确定保存文件的位置。试着将最后一部分更改为:

代码语言:javascript
复制
$x -replace "`r`n","`n" | set-content -NoNewline -path $_.fullname

对此:

代码语言:javascript
复制
set-content -NoNewline -path $_.fullname -value ($x -replace "`r`n","`n")

如果没有按照您的预期更新格式,您可能需要为-Encoding使用Set-Content参数。不过,我对编码并不太熟悉,所以我对此并不确定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59310875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档