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 vers cette racine comme suit:
cd %root%
Lorsque j'exécute ce fichier de commandes à partir de n'importe où sur le lecteur D, cela se fait avec succès. Mais lorsque j'exécute le même fichier de commandes à partir d'un autre lecteur, cd% root% ne fonctionne pas.
Existe-t-il un moyen d'obtenir la lettre de lecteur à partir de la variable racine? Je peux ensuite changer le répertoire actuel sur ce lecteur en premier, puis cd% root% fonctionnera.
\d
(minuscules) y a-t-il une différence entre les deux? L'option est-elle simplement insensible à la casse?/D
ci-dessus sont insensibles à la casse (/D
=/d
), tout comme les commandes elles-mêmes (CD
=cd
). Je pense que cela est également vrai pour tous les utilitaires de ligne de commande Windows externes (commeFINDSTR
,SORT
etc.). Les outils tiers, en revanche, peuvent utiliser des paramètres sensibles à la casse.set "root=/d D:\Work\Root"
etcd %root%
ou mêmeset "root=cd /d D:\Work\Root"
et juste%root%
Utilisez simplement
cd /d %root%
pour changer de lettre de pilote et de répertoire.Vous pouvez également utiliser
pushd %root%
pour changer les lettres de lecteur lors du changement de répertoires et pour stocker le répertoire précédent sur une pile afin que vous puissiez l'utiliserpopd
pour revenir en arrière.Notez que
pushd
cela vous permettra également de changer de répertoire en partage réseau. Il mappera en fait un lecteur réseau pour vous, puis le démappera lorsque vous exécuterez lepopd
pour ce répertoire.la source
Essaye ça
Profitez de l'enracinement;)
la source
Une syntaxe plus simple pourrait être
pushd% racine%
la source