我正在尝试找到一种方法来将文件分组在一起以便于复制。要求我有如下文件名:
aa0048.pdf 和 fg345_aa0048_somethingsomething.xml。文件夹中有 25000 个文件,配对之间的匹配是名称的部分相等。在此示例中aa0048。
我尝试在 Windows 资源管理器中进行分组和过滤,但效果不佳。有没有其他工具可以为我执行此操作,或者是否有一些 PowerShell/cmd 脚本来进行这些组合并将前 100 对移动到另一个文件夹?
原因是我需要稍后用批处理程序来处理这些文件,但想以 100 个文件为单位进行处理,而不是同时处理所有 25000 个文件,因为这会使我正在处理的系统超载。
答案1
该脚本将移动100个文件(50对)。
根据需要设置$sourceDir
和。仅当您满意时,它才会执行您想要的操作(在此之前,它实际上不会移动任何东西;它只会告诉您它会移动什么)。$destDir
-WhatIf
我假设要搜索的模式是两个字母数字字符,然后是四个数字 ('\w{2}\d{4}')。如果需要,您可以将其收紧。
$sourceDir = "."
$destDir = "DestDir"
Get-ChildItem $sourceDir |
Group-Object -Property { $_ -match '\w{2}\d{4}'; $Matches[0] } |
Select-Object -First 100 -ExpandProperty Group |
Move-Item -WhatIf -Destination $destDir