2010-01-11 6 views

Répondre

16

Supposons que votre lot est nommé quelque chose comme myrename.cmd, alors vous pouvez facilement effectuer les opérations suivantes:

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

La première ligne se déroulera pour le répertoire courant, la boucle for itérera récursive (/r) sur tous les répertoires (/d) et exécutez la partie entre parenthèses. Qu'est-ce que nous faisons à l'intérieur d'eux est de changer le répertoire à celui que nous sommes actuellement itérer avec pushd -qui a la belle propriété que vous pouvez annuler ce répertoire change avec popd -et ensuite exécutez la commande, qui sera ensuite exécuté dans le répertoire nous venons de passer à.

Ceci suppose que le lot se trouve quelque part dans le chemin. Si ce n'est pas le cas et se trouve juste là où se trouve le fichier batch ci-dessus, alors vous pouvez utiliser

"%~dp0myrename.cmd" 
+0

merci beaucoup –

+0

Que signifie le dernier bit? –

+0

@VirgilIerubino: Quel est le dernier morceau? La partie avec '% ~ dp0'? Voir 'help for' pour une explication. – Joey

Questions connexes