J'ai un bat
fichier sur Windows qui exécute une opération procdump . Le problème avec le fichier de commandes est que je dois d'abord accéder au répertoire des fichiers de commandes avant d'exécuter le travail, sinon le script ne fonctionnera pas.
Comment passer au répertoire de fichiers batch actuel?
J'ai essayé le code suivant dans mon procdump.bat
:
cd "%~dp"
procdump -h devenv.exe mydump.txt
Mais il a échoué, le message d'erreur est:
L'utilisation suivante de l'opérateur de chemin dans la substitution de paramètres par lots n'est pas valide:% ~ dp "
Pour les formats valides, tapez CALL /? ou pour /?
Edit: La réponse fournie fonctionne, mais il n'y a qu'un seul hic: si mon répertoire actuel est différent du répertoire du fichier batch, alors j'obtiendrais "Le système ne peut pas trouver le chemin spécifié". Quelqu'un a des idées?
la source
Réponses:
Ok, je pense avoir trouvé ici ce que tu veux dire
%~dp
.Je pense que ce que vous voulez vraiment faire est le suivant:
(!) Mais notez que cela ne vous donnera toujours pas le bon comportement lorsque vous essayez d'exécuter votre lot alors que le répertoire actuel se trouve sur un autre lecteur carcd
cela ne change pas le lecteur actif.Edit : Apparemment (merci @Yoopergeek ), vous pouvez ajouter le
/D
paramètre à lacd
commande pour lui permettre également de changer le lecteur actif.la source
help call
à l'cmd
invite.%~dp0
cd /D
oucd "%~dp0" /D
ne peut pas aider.cd /D "%~dp0"
. Merci.Je laisserais un commentaire à la réponse de fretje, mais évidemment je ne peux pas ???
Quoi qu'il en soit, concernant la note:
Mais notez que cela ne vous donnera toujours pas le bon comportement lorsque vous essayez d'exécuter votre lot alors que le répertoire actuel se trouve sur un autre lecteur car cd ne change pas le lecteur actif.
Utilisez le
/D
commutateur dans votre commande de CD et le CD changera le lecteur actif.la source