PowerShell的:递归搜索文件类型的驱动器或目录在创作
问题描述:
我试图将PowerShell的到我的日常工作流程的具体时间框架,所以我可以从多达桌面支持家伙一个系统管理员移动。我帮助时,一个同事是如何搜索保存在一个未知的目录丢失或遗忘的文件中遇到的一个问题。我想出的管道是:PowerShell的:递归搜索文件类型的驱动器或目录在创作
dir C:\ -Recurse -Filter *.pdf -ErrorAction SilentlyContinue -Force | Out-File pdfs.txt
此代码执行我想要的,但现在我想扩展此命令,并使其更有效。特别是因为我的公司有非常糟糕的文件管理客户。
我想要做这个管道是什么:
- 递归搜索这是在特定的时间框架中创建一个特定的文件类型。可以说,这个搜索中允许的最早的文件是两天前的一个文件。
- 将文件保存为包含文件名,全名(路径)的列的文本文件,并按创建时间降序排序。
我有什么至今:
dir C:\ -Recurse -Filter *.pdf -ErrorAction SilentlyContinue -Force | Select-Object Name, FullName | Out-File *pdfs.txt
我真的需要就如何针对该文件的创建时间创建一个过滤器的帮助。我想我需要使用Where对象cmdlet的目录管后选择对象管之前正确的,但我不知道如何设置了。这是我写的:Where-Object {$_.CreationTime <
答
你在正确的轨道上,从一个特定的文件创建日期范围内获得的文件,你可以管dir命令结果:
Where-Object {$_.CreationTime -ge "06/20/2017" -and $_.CreationTime -le "06/22/2017"}
如果你想更多的东西可重复的,你不必硬编码的日期,每次只想搜索文件从2天前,你可以设置变量:
$today = (Get-Date)
$daysago = (Get-Date).AddDays(-2)
然后插件变量:
Where-Object {$_.CreationTime -ge $daysago -and $_.CreationTime -le $today}
我不靠近我的Windows PC来测试这一点,但我认为它应该工作!
答
看看这是否有帮助
dir c:\ -Recurse -Filter *.ps1 -ErrorAction SilentlyContinue -Force | select LastWriteTime,Name | Where-Object {$_.LastWriteTime -ge [DateTime]::Now.AddDays(-2) } | Out-File Temp.txt