Saya membuat file log kesalahan. Ini adalah kode saya saat ini:
Add-Content -path $logpath $((get-date).tostring() + " Error " + $keyPath `
+ $value + " key " + $key +" expected: " + $policyValue `
+ "`n local value is: " +$localValue
Ketika saya Get-Content
pada file log, file tersebut ditampilkan dengan benar, dengan baris baru sebelum "local value."
Namun, ketika saya membuka file log di Notepad, file tersebut menampilkan semuanya dalam satu baris. Bagaimana saya bisa membuatnya memasukkan baris baru ke dalam file teks juga?
`n
adalah karakter line feed. Notepad (sebelum Windows 10) mengharapkan linebreak dikodekan sebagai `r`n
(carriage return + line feed, CR-LF). Buka berkas di beberapa editor yang berguna (SciTE, Notepad++, UltraEdit-32, Vim, ...) dan konversikan linebreak ke CR-LF. Atau gunakan PowerShell:
(Get-Content $logpath | Out-String) -replace "`n", "`r`n" | Out-File $logpath
Anda dapat menggunakan properti NewLine statis Environment class's static NewLine property untuk mendapatkan baris baru yang tepat:
$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
Dimungkinkan juga untuk menetapkan newline dan carriage return ke variabel dan kemudian menambahkannya ke teks di dalam skrip PowerShell:
$OFS = "`r`n"
$msg = "This is First Line" + $OFS + "This is Second Line" + $OFS
Write-Host $msg