Reputation: 553
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?
Upvotes: 54
Views: 272105
Reputation: 1048
"Line-1$([Environment]::NewLine)`"Line-2`"$([Environment]::NewLine)Line-3"| out-File c:\Temp\abc.txt
Upvotes: 0
Reputation: 31
Values were not working for me when using Pipe command. I Created an additional Add-Content with -Value of nothing "" followed by the original Get | Add that I was trying to use.
$newfile = "C:\FilePath\Newfile.txt"
$oldfile = "C:\FilePath\Oldfile.txt"
Add-Content -Path "$newfile" -value ""
Get-Content -Path "$oldfile | Add-Content -Path "$newfile"
Upvotes: 3
Reputation: 200293
`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
Upvotes: 72
Reputation: 2942
Try this;
Add-Content -path $logpath @"
$((get-date).tostring()) Error $keyPath $value
key $key expected: $policyValue
local value is: $localValue
"@
Upvotes: 4
Reputation: 2119
It's also possible to assign newline and carriage return to variables and then append them to texts inside PowerShell scripts:
$OFS = "`r`n"
$msg = "This is First Line" + $OFS + "This is Second Line" + $OFS
Write-Host $msg
Upvotes: 19
Reputation: 26749
You can use the Environment class's static NewLine property to get the proper newline:
$errorMsg = "{0} Error {1}{2} key {3} expected: {4}{5} local value is: {6}" -f `
(Get-Date),$keyPath,$value,$key,$policyValue,([Environment]::NewLine),$localValue
Add-Content -Path $logpath $errorMsg
Upvotes: 21