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?
%~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.
%~dp0
peut être un chemin relatif. Pour le convertir en chemin complet, essayez quelque chose comme ceci:
pushd %~dp0
set script_dir=%CD%
popd
Vous pouvez utiliser le script suivant pour obtenir le chemin sans fin "\"
for %%i in ("%~dp0.") do SET "mypath=%%~fi"