83 votes

Comment exécuter des programmes dans le même répertoire que le fichier batch Windows ?

J'ai dans le même dossier un fichier .bat et un fichier .exe. Je ne pouvais pas appeler le fichier .exe partir du fichier .bat moins d'y mettre le chemin absolu complet. Existe-t-il un moyen de ne pas spécifier le chemin ?

178voto

Patrick Cuff Points 13362

Essayez d'appeler le .exe avec %~dp0, comme ceci : %~dp0MyProgram.exe.

%0 contient le chemin complet vers le fichier .bat appelé.

~dp dit d'obtenir le lecteur et le chemin, y compris \ arrière.

30voto

Bruno Points 1033

J'ai résolu cela en changeant le répertoire de travail en utilisant pushd au début du script et la restauration est à la fin du script en utilisant popd. De cette façon, vous pouvez toujours supposer que le répertoire de travail est le même que l'emplacement du fichier bat.

pushd %~dp0
ProgramInSameFolderAsBat.exe
popd

0voto

house9 Points 9240

semble étrange ? Je n'ai pas travaillé sur les fenêtres depuis un certain temps, mais

avez-vous essayé de mener avec un ./

./program.exe

ne devrait vraiment pas être une différence ? peut-être que la bat s'exécute à partir du contexte de C :\Windows ou votre lot a-t-il fait un cd à un autre dir à un moment donné ?

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