Jeg oppretter en feilloggfil. Dette er min nåværende kode:
Add-Content -path $logpath $((get-date).tostring() + " Error " + $keyPath `
+ $value + " key " + $key +" expected: " + $policyValue `
+ "`n local value is: " +$localValue
Når jeg Get-Content
på loggfilen, vises den riktig, med den nye linjen før "local value."
Men når jeg åpner loggfilen i Notisblokk, vises alt på én linje. Hvordan kan jeg få den til å sette inn en ny linje i tekstfilen også?
`n
er et linjeskifttegn. Notepad (før Windows 10) forventer at linjeskift kodes som `r`n
(vognretur + linjeskift, CR-LF). Åpne filen i et nyttig redigeringsprogram (SciTE, Notepad++, UltraEdit-32, Vim, ...) og konverter linjeskiftene til CR-LF. Eller bruk PowerShell:
(Get-Content $logpath | Out-String) -replace "`n", "`r`n" | Out-File $logpath
Du kan bruke Environment-klassens statiske NewLine-egenskap for å få riktig ny linje:
$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
Det er også mulig å tilordne ny linje og vognretur til variabler og deretter legge dem til tekster i PowerShell-skript:
$OFS = "`r`n"
$msg = "This is First Line" + $OFS + "This is Second Line" + $OFS
Write-Host $msg