【问题标题】:Quickly scan large directory / drive with powershell使用powershell快速扫描大目录/驱动器
【发布时间】:2014-12-18 00:53:48
【问题描述】:

我正在尝试扫描包含数千个文件的共享网络驱动器,仅扫描过去一年未修改的 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 会减慢它的速度,但由于第一次运行需要几个小时,我想知道它还活着。

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

【问题讨论】:

  • Write-Progress 会减慢你的速度。
  • @Colyn1337 你读过我的整个帖子吗? ... “我也知道写入进度会减慢它的速度,但由于第一次运行需要几个小时,我想知道它还活着。”我在第一次运行后添加了 write-progress,因为它已经花费了几个小时,我想看看它仍然在正常运行。

标签: powershell


【解决方案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] }
   }

【讨论】:

  • 在本地测试,运行速度明显更快。如果它在完整扫描时没有窒息,我将标记为已回答。谢谢。
  • 如果您启用了远程处理,如果您使用 Invoke-Command 和本地驱动器路径在目标计算机上本地运行它,它将运行得更快。
猜你喜欢
  • 2014-11-28
  • 2015-02-01
  • 2012-08-28
  • 2020-11-01
  • 2013-06-16
  • 1970-01-01
  • 2022-06-14
  • 2022-07-14
  • 1970-01-01
相关资源
最近更新 更多