How to set the working directory of a command in a Windows batch file?

What worked for me is adding a /d:

cd /d C:\nginx
ECHO Stopping nginx...
start nginx -s quit

(When I didn't have the /d, it didn't work.)

https://stackoverflow.com/a/18310141/470749 tries to explain it.


You could use the cd command (help with cd /?) with the %~dp0, batch file path, variable.

Prog1.exe
cd D:\SomeDir
Prog2.exe
cd %~dp0
Prog3.exe

For a complete list of %~ modifiers see call /? or for /? help.

However, I only add this as to provide a more complete answer on Stack Overflow. I would RECOMMEND using jeb's solution above.


You could use the pushd/popd commands (help with pushd /?)

Prog1.exe
Pushd D:\SomeDir
Prog2.exe
popd
Prog3.exe