使用powershell快速扫描大型目录/驱动器

时间:2014-12-17 16:07:30

标签: powershell

我正在尝试扫描包含数千个文件的共享网络驱动器,仅用于过去一年未被修改过的Word文件。虽然我写的是有效的,但它非常慢。我需要扫描多个驱动器,需要几个小时。我有什么办法可以加快速度吗?

gci \\RemoteServer\ -filter *.docx -recurse -force | %{write-progress -Status $_ -Activity "Scanning old Word files...";$_} | ? {$_.lastwritetime -ge '1/1/13' -AND $_.lastwritetime -le '12/30/13'} | measure-object

我确实看到this,但我不确定如何/可以将日期范围应用于该搜索。

我也知道write-progress会减慢速度,但是由于第一次运行需要几个小时,所以我想知道它还活着。

任何帮助或指导都将不胜感激。

1 个答案:

答案 0 :(得分:1)

试试这个:

Switch -Wildcard ((cmd /c dir \\Server\Share\*.docx /S /A-D) -match 'Directory of|^\d\d/\d\d/2013')
  {
   '*Directory of*' {$directory = $_.replace(' Directory of ','')}
   Default          {'{2} {0}\{1}' -f $directory,($_ -split '\s+',4)[-1],$_.split(' ')[0] }
   }