¿Cómo obtener la ruta del script por lotes en Windows?
Sé que %0
contiene la ruta completa del script por lotes, por ejemploc:\path\to\my\file\abc.bat
Quiero path
ser igual a c:\path\to\my\file
.
¿Cómo puedo lograr eso?
Aceptado
%~dp0
será el directorio. Aquí hay documentación sobre todos los modificadores de ruta . Cosas divertidas :-)
Para eliminar la barra invertida final, puedes usar la :n,m
sintaxis de subcadena, así:
SET mypath=%~dp0
echo %mypath:~0,-1%
Desafortunadamente , no creo que haya una manera de combinar la %0
sintaxis con la :~n,m
sintaxis.
%~dp0
puede ser un camino relativo. Para convertirlo en una ruta completa, intente algo como esto:
pushd %~dp0
set script_dir=%CD%
popd
Puede utilizar el siguiente script para obtener la ruta sin seguir "\"
for %%i in ("%~dp0.") do SET "mypath=%%~fi"