Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Writing new lines to a text file in PowerShell

I'm creating an error log file. This is my current code:

Add-Content -path $logpath $((get-date).tostring() + " Error " + $keyPath `    + $value + " key " + $key +" expected: " + $policyValue `    + "`n local value is: " +$localValue 

When I Get-Content on the log file, it displays correctly, with the new line before "local value."

However, when I open the log file in Notepad, it displays everything on a single line. How can I cause it to insert a new line into the text file as well?

like image 653
NewPowerSheller Avatar asked Jul 02 '13 19:07

NewPowerSheller


People also ask

How do I write multiple lines in a text file in PowerShell?

You can use PowerShell Newline Environment variable ([environment]::Newline ) to create multiline string.

How do I add a new line in PowerShell script?

Using PowerShell newline in Command To add newline in the PowerShell script command, use the` (backtick) character at the end of each line to break the command into multiple lines.


1 Answers

`n is a line feed character. Notepad (prior to Windows 10) expects linebreaks to be encoded as `r`n (carriage return + line feed, CR-LF). Open the file in some useful editor (SciTE, Notepad++, UltraEdit-32, Vim, ...) and convert the linebreaks to CR-LF. Or use PowerShell:

(Get-Content $logpath | Out-String) -replace "`n", "`r`n" | Out-File $logpath 
like image 144
Ansgar Wiechers Avatar answered Oct 01 '22 02:10

Ansgar Wiechers