135 votes

Comment changer le répertoire de travail actuel à l'aide d'un fichier batch ?

J'ai besoin d'aide pour écrire un fichier batch. J'ai un chemin stocké dans une variable Racine comme suit :

set root=D:\Work\Root

Ensuite, je change mon répertoire de travail en Root comme suit :

cd %root%

Lorsque j'exécute ce fichier batch à partir de n'importe quel endroit du disque D, il s'exécute avec succès. Mais lorsque j'exécute le même fichier batch à partir d'un autre lecteur, cd %Root% ne fonctionne pas.

Existe-t-il un moyen d'obtenir la lettre du lecteur à partir de la variable racine ? Je peux alors changer le répertoire courant en ce lecteur et le cd %Root% fonctionnera.

192voto

Andriy M Points 40395

Préciser /D pour changer également le lecteur.

CD /D %root%

47voto

Gabe Points 49718

Il suffit d'utiliser cd /d %root% pour changer de pilote et de répertoire.

Vous pouvez également utiliser pushd %root% pour changer les lettres de lecteur lors d'un changement de répertoire et pour stocker le répertoire précédent sur une pile afin de pouvoir utiliser la fonction popd pour revenir en arrière.

Il convient de noter que pushd vous permettra également de changer de répertoire vers un partage de réseau. Il mappera en fait un lecteur réseau pour vous, puis le démappera lorsque vous exécuterez la commande popd pour ce répertoire.

38voto

stingray_ Points 28

Essayez ceci

chdir /d D:\Work\Root

22voto

NapkinBob Points 533

Une syntaxe plus simple pourrait être

pushd %Root%

6voto

daylight Points 329

Dans mon fichier batch, je devais :

  1. Changer le répertoire en un autre répertoire
  2. exécuter des commandes dans un fichier bat -- effectuer des travaux dans ce répertoire
  3. retourner dans mon répertoire d'origine

pushd a résolu ce problème avec l'aide de popd

Exemple de fichier bat

pushd <my-working-directory>
do command
do other command
...

popd 

popd m'a ramené dans le répertoire d'origine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X