我为一个实习编写了一个简单的脚本,它通过提供的目录浏览并删除任何超过指定天数的文件。今天我花了我所有的空闲时间试图收紧它。下面是我到目前为止有:我可以让这个脚本更快吗?
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