在PowerShell中,我们可以使用Get-Childitem收集我们想要的文件,但搜索和存储那些变量作为这样的:一旦这些文本文件存储到我们的内容变量
$Content = Get-Content (Get-Childitem -Path C:\Temp\*.txt)
我们可以简单地使用-match正则表达式运算符来查找该文件集合内的匹配项。
$Content -match "Bacon"
,你可以再出这个信息用出文件:
$Content -match "Bacon" | Out-file C:\Temp\Bacon.txt
当然你可以使用日期时间运算符和缩小查询才改成文本文件的获取,子项按要求。
如果你想获得更多的技术,我们可以用Select-String会得到这个输出多个匹配,而这样的:
Get-ChildItem C:\Logs |
where { $_ | Select-String -Pattern 'Blahblah' } |
where { $_ | Select-String -Pattern '\d{4}' } |
...
你也可以做一个行:
gci C:\Logs| select-string -pattern '(Bacon.*Failed)|(Failed.*Steak)'
输出完全取决于你的想象力。一旦它们只是简单的字符串,就可以将它们放入数组或自定义PS对象中以获得更好的输出。它只会要求你将你正在运行的命令保存到一个变量中,然后再调用它来输出。
对于分组,请查看Group-Object cmdlet。它会给你出现的次数。
是的,这可以做到。 '选择字符串'我认为会发挥很大的作用。对于自动化,您可以考虑计划任务。请限制您的帖子到一个问题。[计划的任务在PowerShell上覆盖SO](http://stackoverflow.com/questions/18259951/powershell-script-does-not-run-via-scheduled-tasks)所以你应该能够找到帮助 – Matt
谢谢。安排这是下一步。我试着选择字符串,仍然试图找出如何搜索多个参数,并将它们报告在可读表中,并记录所有事件,并将其记录到多个日志文件中 –