次のような他のバッチファイルを呼び出すバッチファイルがあります。
e:\foo\master.bat
のコンテンツ:
call e:\bar\run1.bat
e:\bar\run1.bat
にはコンテンツがあります
app1.exe
問題は、master.bat
ディレクトリにあるのではなくapp1.exe
ディレクトリにあると想定されるため、e:\foo
を実行するとe:\bar
が実行されないことです。
あなたはapp1.exeがどこにあるのか少しわかりません。
フォルダーをrun1.batと共有している場合は、run1.batを変更します。
どちらかに
@Echo off
Pushd "%~dp0"
app1.exe
popd
または
@Echo off
"%~dp0app1.exe"
%0
は現在実行中のバッチを参照し、修飾子~dp
はドライブとパスを返します(末尾に円記号を付けます)。
質問への回答は、Stack Overflowの同様の質問から抽出できます。
ここで説明する変数を使用すると、run1.batを更新してapp_.exeを次の行で呼び出すことができます:%~dp0app1.exe
。 (%〜dp0変数には末尾にスラッシュが含まれます。)これにより、現在のバッチファイルの場所から実行可能ファイルを実行するようにバッチファイルに指示します。