1

Я пытаюсь найти способ сгруппировать файлы для удобного копирования. Требование заключается в том, что у меня есть такие имена файлов:

aa0048.pdf и fg345_aa0048_somethingsomething.xml. В папке 25000 файлов, и соответствие между парами состоит в том, что часть имени совпадает. В этом примере aa0048.

Я пробовал группировать и фильтровать в Windows Explorer, но это не дало хороших результатов. Есть ли другой инструмент, который может сделать это для меня, или какой-нибудь сценарий PowerShell/cmd для создания этих комбинаций и перемещения первых 100 пар в другую папку?

Причина в том, что мне нужно обрабатывать пары позже с помощью пакетной программы, но я хочу сделать это кусками по 100 вместо всех 25000 файлов одновременно, так как это приведет к перегрузке системы, в которой я обрабатываю.

1 ответ1

0

Этот скрипт переместит 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .