Массовое перемещение через CMD Regex

275
LincM

У меня около 15 тыс. Файлов в плоской папке. Все названы как-то так blah blah - whatever.png. По сути, я хотел бы переместить их все в папки с именем blah blah. Я не хочу переименовывать ни одного из них, просто поместите их в соответствующие папки. Я предполагаю, что мне нужно сделать это с каким-то регулярным выражением, но я не могу понять, как применить регулярное выражение в этом контексте.

0
Я только что попытался для% A IN (* .docx) переместить "% A" "^ [^ -] * [^ -] /% A" И это не сработало: / LincM 6 лет назад 0

1 ответ на вопрос

1
Berend

Команда forне поддерживает регулярные выражения.

Предполагая, что все файлы содержат -символы, вы можете использовать этот код в командном файле:

for /f "delims=- tokens=1* usebackq" %%a in (`dir /b *.png`) do ( if not exist "%%a" mkdir "%%a" move "%%a-%%b" "%%a" ) 

delims=-будет разделять имена файлов -, давая вам имя каталога, который будет создан, если он еще не существует. Далее исходное имя файла %%a-%%bбудет перемещено в этот каталог.

Я попробовал это, и результатом было создание каталогов с именем `blah blah -` (включая дефис), и он ничего не перемещал (предположительно, из-за того, что соглашение о присвоении имен директории не выравнивалось). Я немного пробовал это сделать, но не смог заставить это работать _ful_. LincM 6 лет назад 0
@LincM Это странно. По определению `-` не должен быть частью` %% a`, потому что имя файла разделено на него. Может быть, это не дефис, а еще один символ тире? Berend 6 лет назад 0
Я не верю, что это еще один UTF. Что может сделать, это использовать это как пакет, а не как команду и посмотреть, работает ли он по-другому. LincM 6 лет назад 0
@LincM, да, этот код был задуман как пакет. Я добавлю это к моему ответу Berend 6 лет назад 0
Ах, хорошо, хорошо, что работает. Я надеялся, что мне удастся понять структуру того, как можно сделать это напрямую через командную строку вместо запуска пакета, но это позволяет добиться того, чего я добиваюсь, спасибо! LincM 6 лет назад 0

Похожие вопросы