Я'м создает файл журнала ошибок. Это мой текущий код:
Add-Content -path $logpath $((get-date).tostring() + " Error " + $keyPath `
+ $value + " key " + $key +" expected: " + $policyValue `
+ "`n local value is: " +$localValue
Когда я вам-контент на лог-файл, он отображает правильно, с новой строки, перед "и местного значения.&и"
Однако, когда я открываю лог-файл в блокноте, он выводит все в одну строку. Как я могу вызвать его, чтобы вставить новую строку в текстовый файл?
<код>`п< код> есть символ перевода строки. Блокнот (до Windows 10) предполагает, что переносы строк будут закодированы как <код> У`р`п</код> (возврат каретки + перевод строки, СГ-ЛФ). Откройте файл в какую-то полезную редактор (перечень, Блокнот, личные-32, ВИМ, ...) и преобразовать переносы строк к CR-ЛФ. Или использовать PowerShell:
(Get-Content $logpath | Out-String) -replace "`n", "`r`n" | Out-File $logpath
Вы можете использовать класс среды'ы статическую строку собственность для того чтобы получить правильные строки:
$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
Это's также можно назначить перевод строки и возврат каретки в переменные, а затем добавить их в тексты внутри скриптов PowerShell:
$OFS = "`r`n"
$msg = "This is First Line" + $OFS + "This is Second Line" + $OFS
Write-Host $msg