我爲一個實習編寫了一個簡單的腳本,它通過提供的目錄瀏覽並刪除任何超過指定天數的文件。今天我花了我所有的空閒時間試圖收緊它。下面是我到目前爲止有:我可以讓這個腳本更快嗎?
function delOld($dir, $numDays){
$timespan = new-timespan -days $numDays
$curTime = get-date
get-childItem $dir -Recurse -file |
where-object {(($curTime)-($_.LastWriteTime)) -gt $timespan} |
remove-Item -whatif
}
下面是函數的調用的例子:
delOld -dir "C:\Users\me\Desktop\psproject" -numDays 5
對不起,我閱讀的難度,我發現,冷凝操作成一行比每次迭代將其重新分配給易讀變量更有效。目前爲了測試目的,刪除項目已被刪除。我知道,在這一點上,我可能無法加快它的速度,但是,我將它運行在一個TB文件上,因此每個操作都很重要。
在此先感謝您提供的任何建議!
這是一樣快,你可以把它給我的眼睛。我真的不知道,除了設計它可能導致失業之外,它會如何更快?但重新設計這樣會否定速度增加 – pointerless
您是否嘗試過Log Parser? –
99%的時間花在讀取物理磁盤的'Get-ChildItem'上,所以如果有任何方法加速它的存在,它將直接通過使用[Everything's API]來讀取磁盤的MFT(http://www.voidtools.com/support/everything/sdk /)(應該啓用時間/日期索引)並且可能需要幾秒鐘的搜索查詢! – wOxxOm