Powershell 在具有特定修改日期的文件中搜索单词

Powershell 在具有特定修改日期的文件中搜索单词,powershell,Powershell,使用Powershell,我需要查询日志文件中的特定单词,即“错误”,以确保我正在搜索最新的日志(修改日期为今天) 到目前为止,我已经尝试了Get Child、Where-Object和Select-Stringcmdlet,但将它们串在一起确实有困难 我可以从一个日期修改为“今天”的目录中查找日志或txt文件,如下所示: dir c:\temp\ -i *.txt, *.log -Recurse | Where-Object {$_.LastWriteTime -ge (get-dat

使用Powershell,我需要查询日志文件中的特定单词,即“错误”,以确保我正在搜索最新的日志(修改日期为今天)

到目前为止,我已经尝试了
Get Child
Where-Object
Select-String
cmdlet,但将它们串在一起确实有困难

我可以从一个日期修改为“今天”的目录中查找日志或txt文件,如下所示:

dir c:\temp\ -i *.txt, *.log -Recurse |
    Where-Object {$_.LastWriteTime -ge (get-date)::today}
和以下命令可在同一目录中搜索包含“error”一词的任何文件:

dir c:\temp\ -i *.txt, *.log -Recurse |
    Select-String error

我想合并我已有的两个查询,以便在目录中搜索最新的文件,然后在最新的文件中搜索“错误”一词。

如果您需要最新的日志文件,我建议您对列表进行排序并选择最后一个:

Get-ChildItem -Path $Env:TEMP -Include *.txt, *.log -Recurse |
    Where-Object LastWriteTime -ge ([datetime]::Today) |
    Sort-Object LastWriteTime |
    Select-Object -Last 1 |
    Select-String -Pattern error

如果您需要最新的日志文件,我建议您对列表进行排序,并选择最后一个:

Get-ChildItem -Path $Env:TEMP -Include *.txt, *.log -Recurse |
    Where-Object LastWriteTime -ge ([datetime]::Today) |
    Sort-Object LastWriteTime |
    Select-Object -Last 1 |
    Select-String -Pattern error

@瑞奇布里格斯很乐意帮忙!一个改进是在使用
Select String
之前将调用分配给一个变量,以确保您确实拥有当天的文件,并且不会出现误报。@RickyBriggs很乐意提供帮助!一个改进是在使用
Select String
之前将调用分配给一个变量,以确保您实际拥有当天的文件,并且不会出现误报。