0

私は(とりわけ)別のバッチファイルを呼び出すことになっているバッチファイルを書いています。2番目のバッチファイルは同じディレクトリにあるファイルに依存しているため、最初のバッチファイルから実行しようとすると失敗します。

例:

バッチファイル#1 :(Cにあります:)

@echo  OFF
call C:\Tests\Tests.bat

出力: "C:\ Tests\Tests.txtが見つかりませんでした

理由:Tests.batとTests.txtはどちらも、C:\ Testsの下にありますが、C:から呼び出しています。

何か案は?

どうもありがとう、イダン。

4

1 に答える 1

1

バッチファイル内で使用%-dp0して、現在実行中のバッチファイルのパスを取得できます。そのディレクトリからファイルにアクセスする必要があるたびに、そのパスを使用できます。例えば:

call "%~dp0\Tests.bat"
for /f "usebackq ..." ... in ("%~dp0\someFile") do ...

もう1つのオプションは、PUSHDを使用して、現在のディレクトリをバッチスクリプトの先頭にある同じパスに一時的に設定することです。その時点から、他のコマンドへのパスを提供することを心配する必要はありません。スクリプトを終了する前に、必ずPOPDを使用してください。そうすれば、スクリプトは、それを呼び出した可能性のあるスクリプトに影響を与えません。

pushd "%~dp0"
rem Do you work
popd
于 2012-12-26T14:55:45.430 に答える