2010-01-11 10 views

risposta

16

si supponga che il gruppo si chiama qualcosa come myrename.cmd, allora si può facilmente effettuare le seguenti operazioni:

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

La prima riga verrà eseguito per la directory corrente, il ciclo for itererà ricorsivamente (/r) su tutti directory (/d) ed eseguire la parte tra parentesi. Quello che facciamo al loro interno è cambiare la directory in quella che stiamo attualmente iterando con pushd -che ha la bella proprietà che è possibile annullare quella modifica di directory con popd -e quindi eseguire il comando, che poi verrà eseguito nella directory siamo appena passati a

Ciò presuppone che il lotto si trovi da qualche parte nel percorso. Se così non fosse e si trova semplicemente dove si trova il file batch sopra, allora puoi usare

"%~dp0myrename.cmd" 
+0

grazie mille –

+0

Cosa significa l'ultimo bit? –

+0

@VirgilIerubino: quale ultimo bit? La parte con '% ~ dp0'? Vedi 'aiuto per' per una spiegazione. – Joey

Problemi correlati