Jader Dias
Jader Dias

Reputation: 90475

How to execute programs in the same directory as the windows batch file?

I have in the same folder a .bat and a .exe file. I couldn't call the .exe file from the .bat unless I put the full absolute path to it. Is there a way to don't specify the path?

Upvotes: 99

Views: 148245

Answers (3)

Kyo
Kyo

Reputation: 91

As Stephen C said, to properly support paths with spaces we can use:

start "%~dp0" "myfile.exe"

or with arguments:

start "%~dp0" "myfile.exe" -my_arguments

Upvotes: 0

Bruno
Bruno

Reputation: 1263

I solved this by changing the working directory using pushd at the start of the script and restoring is at the end of the script using popd. This way you can always assume the working directory is the same as the location of the bat file.

pushd %~dp0
ProgramInSameFolderAsBat.exe
popd

Upvotes: 38

Patrick Cuff
Patrick Cuff

Reputation: 29786

Try calling the .exe with %~dp0, like this: %~dp0MyProgram.exe.

%0 contains the full path to the called .bat file.

~dp says to get the drive and path, including trailing \.

Upvotes: 196

Related Questions