web-dev-qa-db-ja.com

Windowsバッチファイルと同じディレクトリでプログラムを実行する方法は?

同じフォルダーに.bat.exeファイルがあります。完全な絶対パスを指定しない限り、.exeから.batファイルを呼び出すことができませんでした。パスを指定しない方法はありますか?

64
Jader Dias

.exeのように、%~dp0%~dp0MyProgram.exeを呼び出してみてください。

%0には、呼び出された.batファイルへの絶対パスが含まれます。

~dpは、末尾の\を含むドライブとパスを取得するように指示します。

136
Patrick Cuff

スクリプトの開始時に pushd を使用して作業ディレクトリを変更し、スクリプトの最後に popd を使用して復元することでこれを解決しました。この方法では、作業ディレクトリがbatファイルの場所と同じであると常に仮定できます。

pushd %~dp0
ProgramInSameFolderAsBat.exe
popd
22
Bruno