删除行控制台换行符@ out-file

时间:2016-05-04 06:02:16

标签: powershell

我使用以下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

任何提示?

1 个答案:

答案 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代码分隔符。所以,如果你在没有分号的情况下在多行上写,或者在字符串之间用分号在一行上写

,那就相同了