как создать папку с тем же именем, что и у файла в командной строке (Recurse вложенные папки)

как создать папку с тем же именем, что и у файла в командной строке (Recurse вложенные папки)

Хорошо, у меня есть более 15 000 файлов, с которыми мне нужно это сделать.
Я попробовал это, мой корневой каталог — C:\asf> это команда:for /r %x in (*.asf) do aifdump -hr "%x" "%CD%"

но файлы идут в мой корневой каталог и перезаписываются
синтаксис для aifdump - aifdump.exe [Option] [ASF_path] [Texture_dump_path] любой метод решения этой проблемы подойдет, даже если вы используете python или аналогичный, спасибо за вашу помощь

Вот пример, если он вам нужен для работы:http://www.mediafire.com/?e9jwa3tkedilcy5

Спасибо за помощь, Майкл и Боб. Когда я запускаю команду, происходит следующее:

C:\asf>for /r %x in (*.asf) do aifdump -hr "%x" "%~dpnx"

C:\asf>aifdump -hr "C:\asf\9\0.asf" "C:\asf\9\0"

Texture 0.dds : 2.00 KB

и тогда aifdump зависнет. Я обнаружил, что если я создам выходную папку раньше

запустив команду, она будет работать, так как мне переделать команду, чтобы сделать

каталоги, необходимые перед запуском команды aifdump.

Я понял, что мне просто нужно было aifdump -hrизменитьсяmkdir

еще раз спасибо за вашу помощь

решение1

%CD%всегда будет возвращать каталог, в котором вы были текущим, когда выполняли команду; в данном случае это C:\asf'. Если я правильно понимаю то, что вы спрашиваете, вы хотите, чтобы каждый из них попал в отдельный каталог? Если так, вам просто нужно создать это имя каталога в вашей команде.

Однако обратите внимание, что выне могуесть файл и папка с одинаковым именем и одинаковым родительским путем; например, если у вас есть файл с именем C:\asdf\asdf.asf, выне могутакже создайте папку с именем, C:\asdf\asdf.asfпоскольку путь будет неоднозначным.

Самый простой вариант — удалить расширение файла, что forза вас может сделать следующая команда:

for /r %x in (*.asf) do aifdump -hr "%x" "%~dpnx"

ПРИМЕЧАНИЕ: %~dpnxпредставляет собой объединение трех модификаторов и задает диск, путь и имя (без расширения) файла, содержащегося в переменной x.

решение2

Итак, я полагаю, вы хотите, чтобы выходной путь находился в том же месте, что и исходный файл?

for /r %x in (*.asf) do aifdump -hr "%x" "%~dpx"

Это %~специальный модификатор, см for /?. . Если %xэто C:\asf\blah\bleh\file.asf: dpуказывает диск ( C:) и путь ( \asf\blah\bleh\), делая C:\asf\blah\bleh\.

Связанный контент