Search code examples
windowsazurepowershellteamcitydos2unix

dos2unix format conversion error while execution through TeamCity


While trying to transfer file from Windows to Unix Azure environment, I am getting error dos2unix format error

dos2unix -o /xyz/home/ABC_efg.txt failed to execute dos2unix format change.

I tried to run a PS script to fix it but does seem to work .

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

Solution

  • Instead of using -replace, I would prefer to read the content(s) as string array and join these strings with "`n".
    Something like this:

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

    Remove the -WhatIf switch if you are satisfied with the outout shown in the console.