¿Cómo obtener la ruta del script por lotes en Windows?

Resuelto Misha Moroshko asked hace 14 años • 8 respuestas

Sé que %0contiene la ruta completa del script por lotes, por ejemploc:\path\to\my\file\abc.bat

Quiero pathser igual a c:\path\to\my\file.

¿Cómo puedo lograr eso?

Misha Moroshko avatar Sep 30 '10 10:09 Misha Moroshko
Aceptado

%~dp0será el directorio. Aquí hay documentación sobre todos los modificadores de ruta . Cosas divertidas :-)

Para eliminar la barra invertida final, puedes usar la :n,msintaxis de subcadena, así:

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

Desafortunadamente , no creo que haya una manera de combinar la %0sintaxis con la :~n,msintaxis.

Dean Harding avatar Sep 30 '2010 03:09 Dean Harding

%~dp0puede ser un camino relativo. Para convertirlo en una ruta completa, intente algo como esto:

pushd %~dp0
set script_dir=%CD%
popd
Arnaud avatar Oct 27 '2015 15:10 Arnaud

Puede utilizar el siguiente script para obtener la ruta sin seguir "\"

for %%i in ("%~dp0.") do SET "mypath=%%~fi"
duan avatar Apr 01 '2016 08:04 duan