我是一个盲目的用户,我不得不去寻找破坏一些人的计算机的东西,这让人讨厌。他们总是点击“安装这个Active-X”或“立即下载免费的视频播放器”,然后我必须挖掘所有内容。 我编写了一个powershell脚本来搜索C:\以查找写入时间为5分钟的文件,并且为了测试目的,Get-ChildItem部分的工作量较少。现在我只想获得一个文件路径列表,让我的生活更轻松,但我错过了一些东西。 这是我到目前为止所做的:
cd c:\
$fileizer = Get-ChildItem -Path . -exclude *.txt,*.log -ErrorAction SilentlyContinue -Recurse| ? {$_.LastWriteTime -gt (Get-Date).AddMinutes(-5)}
echo $fileizer
如果我只是执行其Get-ChildItem部分,结果如下:
PS C:\Users\tryso> c:\bin\hours.ps1
Directory: C:\bin
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 8/1/2017 2:44 PM 169 hours.ps1
PS C:\>
显然,我要缩小路径,使其更具体而不仅仅是C:\喜欢进入C:\ Windows \ Temp和C:\ Users \和喜欢,我只是想知道如何解析一切给我一个文件列表和路径。 我还想指出,5分钟是愚蠢的,是的,我知道。我只是这样做,让它通过我的C:\驱动器尖叫,因为你会惊讶于C:\ LoL中有多少文件的写入时间为.5小时。 最后,我想弄清楚如何找到新文件而不是最近的写入时间(如果可能的话)。 很抱歉,如果我的查询是蹩脚或重复,我发现的唯一接近的例子由于某种原因不适合我,我在PS脚本中很新 - 但它变得非常上瘾和令人敬畏的LoL。
万分感谢您的帮助!
赖安
答案 0 :(得分:1)
Select-Object cmdlet可以提取您要查找的信息。通常,您需要了解结果的多条信息,因此点源不是最有效的。
尝试这样的方法来查看完整路径,大小和上次修改时间戳:
Get-ChildItem -Path $path -exclude .txt,.log -ErrorAction SilentlyContinue -Recurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddMinutes(-5)} | Select-Object FullName, Length, LastWriteTime