web-dev-qa-db-fra.com

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

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

64
Jader Dias

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

%0 contient le chemin d'accès complet à l'appelé .bat fichier.

~dp dit d'obtenir le lecteur et le chemin d'accès, y compris la fin \.

136
Patrick Cuff

J'ai résolu cela en changeant le répertoire de travail en utilisant pushd au début du script et la restauration se fait à 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
22
Bruno