cómo crear una carpeta con el mismo nombre que un archivo en el símbolo del sistema (subcarpetas recursivas)

cómo crear una carpeta con el mismo nombre que un archivo en el símbolo del sistema (subcarpetas recursivas)

Ok, tengo más de 15.000 archivos con los que necesito hacer esto.
Intenté esto, mi directorio raíz es C:\asf> el comando:for /r %x in (*.asf) do aifdump -hr "%x" "%CD%"

pero los archivos van a mi directorio raíz y se están sobrescribiendo.
La sintaxis de aifdump es aifdump.exe [Opción] [ASF_path] [Texture_dump_path] cualquier método para solucionar este problema está bien incluso si usa Python o similar, gracias por su ayuda.

Aquí hay una muestra si necesita que funcione:http://www.mediafire.com/?e9jwa3tkedilcy5

gracias por su ayuda Michael y Bob. cuando ejecuto el comando hace esto

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

y luego aifdump fallará. Descubrí que si hago la carpeta de salida antes

Al ejecutar el comando, funcionará, entonces, ¿cómo puedo reelaborar el comando para hacer?

los directorios necesarios antes de ejecutar el comando para aifdump.

Lo descubrí, solo tenía que cambiar aifdump -hramkdir

De nuevo, gracias por tu ayuda

Respuesta1

%CD%siempre devolverá el directorio en el que estaba actual cuando ejecutó el comando; en este caso eso es C:\asf'. Si interpreto lo que estás preguntando, ¿quieres que cada uno de ellos vaya a un directorio separado? Si es así, sólo necesita crear ese nombre de directorio en su comando.

Tenga en cuenta, sin embargo, que ustedno puedotener un archivo y una carpeta con el mismo nombre y la misma ruta principal; por ejemplo, si tuviera un archivo llamado C:\asdf\asdf.asf,no puedoTambién cree una carpeta con un nombre C:\asdf\asdf.asfporque la ruta sería ambigua.

La opción más sencilla sería eliminar la extensión del archivo, lo que el forcomando puede hacer por usted:

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

NOTA: %~dpnxes una concatenación de tres modificadores y proporciona la unidad, la ruta y el nombre (sin extensión) del nombre del archivo contenido en la variable x.

Respuesta2

Entonces, ¿supongo que quieres que la ruta de salida esté en el mismo lugar que el archivo fuente?

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

Es %~un modificador especial, consulte for /?. Si %xes C:\asf\blah\bleh\file.asf: dpindica unidad ( C:) y ruta ( \asf\blah\bleh\), haciendo C:\asf\blah\bleh\.

información relacionada