web-dev-qa-db-fra.com

Comment puis-je obtenir la lettre de lecteur à partir de laquelle un script de traitement par lots est en cours d'exécution?

J'ai un script batch sur un CD. Chaque fois que j'essaie de l'exécuter et que je sais %~d0, il renvoie le lecteur C: au lieu de F :, qui est mon lecteur de CD.

Quel est un moyen de trouver la lettre de lecteur?

14
user2245624

Obtenez la lettre de lecteur du répertoire en cours avec:

%cd:~0,2%

% ~ dp0 est très utile dans une batte: c'est le dossier dans lequel se trouve le fichier de batte en cours d'exécution.

Peut-être qu'en haut de votre script, faites quelque chose comme:

set _SCRIPT_DRIVE=%~d0
set _SCRIPT_PATH=%~p0

et ensuite l'écho pour déboguer. % ~ d0 devrait vous donner ce que vous voulez, mais les autres options que j'ai mentionnées pourraient être utiles pour résoudre le problème.

23
bubba

Vous pouvez utiliser %~dp0 pour obtenir le répertoire actuel/de travail:

%~d0
0
saeed arab sheybani