我正在创建一个错误日志文件。这是我目前的代码:
Add-Content -path $logpath $((get-date).tostring() + " Error " + $keyPath `
+ $value + " key " + $key +" expected: " + $policyValue `
+ "`n local value is: " +$localValue
当我对日志文件进行`Get-Content'时,它显示正确,在"local value."之前有新的一行;
然而,当我在记事本中打开日志文件时,它把所有内容都显示在一行上。我怎样才能使它在文本文件中也插入一个新行呢?
`n
是一个换行字符。Notepad(Windows 10之前)希望断行符被编码为`r`n
(回车+换行,CR-LF)。在一些有用的编辑器(SciTE, Notepad++, UltraEdit-32, Vim, ...)中打开文件,将换行符转换成CR-LF。或者使用PowerShell:
(Get-Content $logpath | Out-String) -replace "`n", "`r`n" | Out-File $logpath
你可以使用Environment class's static NewLine property来获得适当的换行:
$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