我需要在 Windows 命令脚本中创建一个带有 Linux 行尾的文件。
到目前为止我能得到的最接近的是这个PowerShell单行:
powershell.exe -Command "Get-ChildItem -File "D:\path\file.sh" | % { $x = get-content -raw -path $_.fullname; $x -replace [char[]](13),'' | set-content -path $_.fullname }"
这和我想要的非常接近了……美中不足的是它在文件末尾添加了一个额外的 CR+LF!有什么建议可以解决这个问题吗,或者有其他方法吗?我无法安装任何其他软件,例如 Cygwin 或 dos2unix,因为这是用于锁定的生产环境。
答案1
答案2
这可能就是你所需要的:
powershell.exe -noninteractive -NoProfile -ExecutionPolicy Bypass -Command "& {[IO.File]::WriteAllText('file_lfonly.txt', ([IO.File]::ReadAllText('file_crlf.txt') -replace \"`r`n\", \"`n\"))};"