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

1 ответ1

1

Команда 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 , будет перемещено в этот каталог.

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