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