46

これらのコマンドがあるとしましょう:

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

ここで、2 行目の作業ディレクトリを D:\SomeDir にしたいのですが、Prog1.exe と Prog3.exe では既定の作業ディレクトリ (通常、.bat ファイルがある場所) が必要です。これを試したら

Prog1.exe
cd D:\SomeDir
D:\SomeDir\Prog2.exe
Prog3.exe

どうやら Prog3 は SomeDir で実行されるようですが、これは私が望んでいるものではありません。

4

3 に答える 3

73

pushd/popd コマンドを使用できます (ヘルプpushd /?)

Prog1.exe
Pushd D:\SomeDir
Prog2.exe
popd
Prog3.exe
于 2012-03-07T09:03:01.120 に答える
12

、バッチファイルパス、変数を指定してcdコマンド(help with cd /?)を使用できます。%~dp0

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

%~修飾子の完全なリストについては、call /?またはfor /?ヘルプを参照してください。

ただし、これを追加するのは、StackOverflowに関するより完全な回答を提供するためだけです。上記のjebのソリューションを使用することをお勧めします。

于 2012-12-06T18:20:06.130 に答える
9

私にとってうまくいったのは、次を追加すること/dです:

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

(持っていないときはうまくいきませんでした/d。)

https://stackoverflow.com/a/18310141/470749で説明しようとしています。

于 2014-05-11T01:34:14.817 に答える