2017-06-22 68 views
2

我試圖將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 <

回答

2

你在正確的軌道上,從一個特定的文件創建日期範圍內獲得的文件,你可以管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來測試這一點,但我認爲它應該工作!

0

看看這是否有幫助

dir c:\ -Recurse -Filter *.ps1 -ErrorAction SilentlyContinue -Force | select LastWriteTime,Name | Where-Object {$_.LastWriteTime -ge [DateTime]::Now.AddDays(-2) } | Out-File Temp.txt