问题
在日志文件中追加字符串的文本,但省略了空格的特定部分。
详细
所以我正在研究日志记录功能,我试图对日志条目的细节有所了解。利用PowerShell,我将字符串附加到日志中;但是,我偶然发现了一个小问题,希望有一个简单的解决方案可以让我保持代码的整体格式。
当我的代码如下:
WriteLog -LogName "somename" -Message "$User did some action
`r`n-- $file was modified"
日志文件中的文本显示为:
04:37:33 PM SOMEUSER did some action
-- SOMEFILE was modified
而不是
04:37:33 PM SOMEUSER did some action
-- SOMEFILE was modified
据我了解,这是由于我的代码字符串中的空格被字面翻译成日志文件。
我还尝试将代码重写为:
WriteLog -LogName "somename" -Message "$User did some action" +
"`r`n-- $file was modified"
但结束时发出错误声明无法执行此操作。有没有办法维护代码布局(为了便于阅读)并告诉应用程序忽略该空格?或者我需要修改我的应用程序以满足我的需求吗?
答案 0 :(得分:2)
正确的解决方案是不要将你的字符串分成不同的行。你已经在字符串(`n)中有命令来创建一个新行。只需将整个字符串放在同一行,就可以避免使用不可见的新行格式。
例如:
WriteLog -LogName "somename" -Message "$User did some action `r`n-- $file was modified"
我并不完全确定你要尝试做什么,但是你可以在这个字符串中写出一个非常长的单行文本,利用新行字符创建任意数量的行。但是如果你想让它在代码中更具可读性,那么你可以在文本行之后使用`标记的组合,并使用+符号转到后续行,这将组合字符串,如下所示:
WriteLog -LogName "somename" -Message "$User did some action `r`n-- $file was modified, I also am writing more information here.`n Now I'm on my third line of data.`n now my fourth."`
+"`n Now my fifth"`
+"`n Now my sixth, and `n a seventh line as well."
如果您希望在代码中将每一行作为单独一行,您可以这样做:
WriteLog -LogName "somename" -Message "$User did some action"`
+"`n -- $file was modified"`
+"`n Line 3 of info."`
+"`n Line 4 of info."`
+"`n Line 5 of info."
答案 1 :(得分:2)
尝试使用括号:
Write-Log -LogName "somename" -Message ("$User did some action" + "`r`n" +
"-- $file was modified")
可能会尝试将"$User did some action"
之后的参数作为位置参数进行评估