J'ai besoin d'aide pour écrire un fichier batch. J'ai un chemin stocké dans une racine variable comme suit:
set root=D:\Work\Root
Ensuite, je change mon répertoire de travail à cette racine comme suit:
cd %root%
Lorsque j'exécute ce fichier de commandes à partir de n'importe où sur le lecteur D, l'opération est effectuée avec succès. Mais lorsque j'exécute le même fichier de commandes à partir d'un autre lecteur, cd% root% ne fonctionne pas.
Est-il possible d'obtenir la lettre de lecteur à partir de la variable racine? Je peux ensuite changer le répertoire en cours sur ce lecteur en premier, puis cd% root% fonctionnera.
Spécifiez /D
pour modifier également le lecteur.
CD /D %root%
Utilisez simplement cd /d %root%
pour changer de lettre de pilote et de répertoire.
Vous pouvez également utiliser pushd %root%
pour changer de lettre de lecteur lors du changement de répertoire, ainsi que pour stocker le répertoire précédent sur une pile afin de pouvoir utiliser popd
pour revenir en arrière.
Notez que pushd
vous permettra également de changer de répertoire sur un partage réseau. En réalité, il mappera un lecteur réseau pour vous, puis annulez-le lorsque vous exécuterez le popd
pour ce répertoire.
Essaye ça
chdir /d D:\Work\Root
Profitez de l'enracinement;)
Une syntaxe plus simple pourrait être
pushd% root%