我使用以下PowerShell命令:
dir -r -include *.log | Select-String "Some pattern" | Out-File .\findings.out
如果我打开findss.out文件,那么"重定向"日志包括原始日志文件中未包含的其他换行符,例如:
原始记录:
xxxx.log:3977:2016-05-03T07:39:13.847+02:00; INFO ; hello world
Logline findings.out:
xxx.log:3977:2016-05-03T07: 39:13.847+02:00; INFO ; hello world
任何提示?
答案 0 :(得分:0)
请考虑以下事项:
$File = "$env:TEMP\test.txt"
一行中的所有内容,因为整个字符串现在在' '
'之间引用。单引号(或双引号' "
'):
'xxx.log:3977:2016-05-03T07:39:13.847+02:00; INFO ; hello world' | Out-File $File
只有'你好世界'在文件中:
'xxx.log:3977:2016-05-03T07:39:13.847+02:00'; 'INFO'; 'hello world' | Out-File $File
因为PowerShell看到以下内容:
Write-Output 'xxx.log:3977:2016-05-03T07:39:13.847+02:00'
Write-Output 'INFO'
Write-Output 'hello world' | Out-File $File
如您所见,只有最后一行写入CmdLet Out-File
。
最后两个陈述是相同的。分号' ;
'是一个PowerShell代码分隔符。所以,如果你在没有分号的情况下在多行上写,或者在字符串之间用分号在一行上写