将CMD输出流到Select-String

时间:2016-03-03 08:19:16

标签: powershell powershell-v2.0

有没有办法将CMD标准输出流畅地传输到PowerShell Select-String

我已经尝试了我能找到的每一种方法,但是我找到的每种方法都会将信息存储在一个变量中,然后再进行管理。它必须是一个流,因为标准输出的大小可能超过20GB,并且在进程崩溃之前最终会导致内存不足。

这是我一直在使用的命令:

gunzip.exe -c "*_2015-06-05_*" |powershell.exe "& {$input | select-string -pattern '1292681581' | Out-File C:\Users\xadministrator\desktop\test2.txt -append}"

1 个答案:

答案 0 :(得分:3)

powershell.exe "& {gunzip.exe -c '*_2015-06-05_*' | select-string ...}"

如果您发现PowerShell太慢,您还应该能够在CMD中完全执行此操作(使用findfindstr进行过滤):

gunzip.exe -c "*_2015-06-05_*" | find "1292681581" >> "C:\Users\xadministrator\desktop\test2.txt"

但是,处理20 GB的数据要么需要一段时间。