2010-01-11 19 views

Respuesta

16

Supongamos que el lote se llama algo así como myrename.cmd, entonces usted puede hacer fácilmente el siguiente:

call myrename.cmd 
for /r /d %%x in (*) do (
    pushd "%%x" 
    call myrename.cmd 
    popd 
) 

La primera línea se ejecutará por el directorio actual, el bucle for se repetirá de forma recursiva (/r) sobre toda directorios (/d) y ejecutar la parte entre paréntesis. Lo que hacemos dentro de ellos es cambiar el directorio al que estamos iterando actualmente con pushd -que tiene la buena propiedad de que puede deshacer ese cambio de directorio con popd -y luego ejecutar el comando, que luego se ejecutará en el directorio acabamos de cambiar a.

Esto supone que el lote se encuentra en algún lugar de la ruta. Si no es así y simplemente se encuentra donde yace el archivo de proceso por lotes, puede usar

"%~dp0myrename.cmd" 
+0

muchas gracias –

+0

¿Qué significa el último bit? –

+0

@VirgilIerubino: ¿Qué fue lo último? La parte con '% ~ dp0'? Ver 'help for' para una explicación. – Joey

Cuestiones relacionadas