Une méthode est ce que Magoo et Stephan ont déjà suggéré:
pushd "%ProgramFiles%\MyApplication"
rem Other commands.
popd
Cette solution fonctionne même pour les chemins UNC avec les extensions de commandes activées que par défaut comme PUSHD mappe temporairement le partage réseau sur une lettre de lecteur et rend ce lecteur réseau le répertoire en cours.
Une autre solution utilise SETLOCAL, CD et ENDLOCAL qui a l'avantage de toutes les modifications des variables d'environnement, les extensions de commandes et de l'expansion retardée fait par les commandes entre setlocal
et endlocal
ne comptent pas pour les commandes après endlocal
ligne de commande.
setlocal EnableExtensions DisableDelayedExpansion
cd /D "%ProgramFiles%\MyApplication"
rem Other commands running in their own environment, here running with command
rem extensions explicitly enabled and delayed expansion explicitly disabled.
endlocal
La commande ENDLOCAL restaure également le répertoire en cours comme étant mis sur l'exécution de SETLOCAL.
Voir la réponse sur change directory command cd ..not working in batch file after npm install avec plus de détails sur PUSHD (push répertoire), POPD (répertoire pop), SETLOCAL (configuration de l'environnement local), CD (répertoire de modification) et ENDLOCAL (fin de l'environnement local). Pour comprendre les commandes utilisées et leur fonctionnement, ouvrez une fenêtre d'invite de commande, exécutez les commandes suivantes et lisez attentivement toutes les pages d'aide affichées pour chaque commande.
cd /?
endlocal /?
rem /?
setlocal /?
popd /?
pushd /?
note, 'a cd' le paramètre'/d' utile. 'pushd' /' popd' est une autre option. – Stephan