Prevent trailing newline in PowerShell Out-File command

后端 未结 3 661
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-15 17:20

How do I prevent PowerShell\'s Out-File command from appending a newline after the text it outputs?

For example, running the following command produces a file with c

3条回答
  •  Happy的楠姐
    2020-12-15 17:47

    To complement briantist's and mklement0's helpful answers re -NoNewline:

    I created this little function to replace the -NoNewLine parameter of Out-File in previous versions of powershell.

    Note: In my case it was for a .csv file with 7 lines (Days of the week and some more values)

    ## Receive the value we want to add and "yes" or "no" depending on whether we want to 
    put the value on a new line or not.
    function AddValueToLogFile ($value, $NewLine) {
        ## If the log file exists:
        if (Test-path $Config.LogPath) {
            ## And we don't want to add a new line, the value is concatenated at the end.
            if ($NewLine -eq "no") {
                $file = Get-Content -Path $Config.LogPath 
                ## If the file has more than one line
                if ($file -is [array]) {
                    $file[-1]+= ";" + $value
                }
                ## if the file only has one line
                else {
                    $file +=  ";" + $value
                }
                $file | Out-File -FilePath $Config.LogPath
            }
            ## If we want to insert a new line the append parameter is used.
            elseif ($NewLine -eq "yes") {
                $value | Out-File -Append -FilePath $Config.LogPath
            }
        }
        ## If the log file does not exist it is passed as a value
        elseif (!(Test-path $Config.LogPath)) {
            $value | Out-File -FilePath $Config.LogPath
        }
    }
    

提交回复
热议问题