web-dev-qa-db-fra.com

Comment obtenir le chemin du script batch sous Windows?

Je sais que %0 contient le chemin complet du script batch, par exemple. c:\path\to\my\file\abc.bat

Je voudrais path être égal à c:\path\to\my\file

Comment pourrais-je atteindre cela?

289
Misha Moroshko

%~dp0 sera le répertoire. Voici de la documentation sur tous les modificateurs de chemin . Truc amusant :-)

Pour supprimer la dernière barre oblique inverse, vous pouvez utiliser la syntaxe de sous-chaîne :n,m, comme suit:

SET mypath=%~dp0
echo %mypath:~0,-1%

Je ne crois pas qu'il soit possible de combiner la syntaxe %0 avec la syntaxe :~n,m, malheureusement.

495
Dean Harding

%~dp0 peut être un chemin relatif. Pour le convertir en chemin complet, essayez quelque chose comme ceci:

pushd %~dp0
set script_dir=%CD%
popd
13
Arnaud

Vous pouvez utiliser le script suivant pour obtenir le chemin sans fin "\"

for %%i in ("%~dp0.") do SET "mypath=%%~fi"
10
duan