ejecutar - ¿Cómo establecer el directorio de trabajo de un comando en un archivo por lotes de Windows?
ejecutar bat como administrador automaticamente (3)
Lo que funcionó para mí es agregar a /d
:
cd /d C:/nginx
ECHO Stopping nginx...
start nginx -s quit
(Cuando no tenía el /d
, no funcionó).
https://stackoverflow.com/a/18310141/470749 intenta explicarlo.
Digamos que tengo estos comandos:
Prog1.exe
D:/SomeDir/Prog2.exe
Prog3.exe
Ahora, para la segunda línea, me gustaría que el directorio de trabajo sea D: / SomeDir, pero en Prog1.exe y Prog3.exe quiero el directorio de trabajo predeterminado (normalmente, donde está mi archivo .bat). Si intento esto
Prog1.exe
cd D:/SomeDir
D:/SomeDir/Prog2.exe
Prog3.exe
Aparentemente, Prog3 se ejecutará en SomeDir, que no es lo que quiero.
Podría usar el comando cd (ayuda con cd /?
) Con% 0, ruta del archivo bat, variable.
Prog1.exe
cd D:/SomeDir
Prog2.exe
cd %dp0
Prog3.exe
Para obtener una lista completa de modificadores% 0, consulte call /?
o for /?
ayuda.
Sin embargo, solo agrego esto para proporcionar una respuesta más completa sobre el desbordamiento de la pila. RECOMIENDO usar la solución de jeb arriba.
Puede usar los comandos pushd / popd (ayuda con pushd /?
)
Prog1.exe
Pushd D:/SomeDir
Prog2.exe
popd
Prog3.exe