PowerShell脚本将文件移动到每个1000个文件的多个子目录中

时间:2014-04-26 09:24:51

标签: powershell

我有一种情况,在从损坏的RAID驱动器恢复文件后,我现在有一个文件夹,其中大约有110,000张RAW图像占用了大约1TB。 每个文件的编号顺序为00000001.CR2至00110232.CR2。

由于此内容的大小和数量,此文件夹或多或少在我的桌面上无法使用。

我需要做的是从这个主文件夹一次移动大约1,000个文件到名为001,002,003等的子文件夹。(我可以使用的文件只有1,000个文件夹!)

因此,在PowerShell中我可以迭代文件夹的所有子项目并移动它们,但是有一个我可以管道输入的命令,一次需要1000个文件名并将它们移动到一个顺序编号的文件夹中吗?

谢谢大家。

1 个答案:

答案 0 :(得分:1)

这样的事,也许?

for ( $i=0 ; $i -le 110 ; $i++ )
 {
  $folder = $i.ToString('000')
  $file = $i.ToString('00000')

  New-Item -ItemType Directory -Path 'c:\imagesfolder\' -Value $folder 
  Move-Item -Path "C:\imagesfolder\$file*.CR2" -Destination "c:\imagesfolder\$folder" 
 }

这不会迭代所有文件,它只是从000-110和00000-00110创建顺序零填充字符串,然后使用它们创建目录,并使用通配符模式中的move-item。 / p>