0

Windows には、dir_a/a.bat と dir_b/b.bat という 2 つの .bat ファイルがあります。

私が欲しいのは、a.bat を実行した後、b.bat を呼び出せるようにすることです。私のアプローチは、パスを dir_b に設定することです。したがって、a.bat を実行した端末では、b.bat を呼び出すだけで、b.bat を実行できます。それでも、「set PATH=dir_b;%PATH%」を a.bat に入れても機能しません。私は何を間違えましたか?

4

4 に答える 4

2

相対パスを扱っている場合: 次のことに気付くかもしれません:

set path=%path%;"\..\..\..\vc98\bin\"

^^動作しません ^^ !

したがって、次のようにします。

pushd "..\..\..\vc98\bin\"
path %cd%; %path%
popd

...そしてもちろん 、pushd と popd の間のset path=%path%;%cd%もうまくいきます

こちらもご覧ください: https://stackoverflow.com/a/6595206/3135511

...
call :setAbsPath ABS_PATH ..\
...

^-自作のサブ関数 ' setAbsPath ' を介してそれを行うことを確認するには -> または呼び出しの代わりにForを使用することもできます- 他のスレッドの詳細


そして、インストールせずに Microsoft Visual C++ 6.0(anno 1998) を実行したいという方のために、ちょっとした注意事項があります。

\vc98\include\ には、手動で 8 + 3 文字に切り刻まれた約 17 個のファイルがあります。同様に:
アルゴリズム -> アルゴリズム
strstrem -> strstream
xception -> 例外

ですから、それについて意識し、創造的にしてください!

于 2014-03-01T14:41:14.900 に答える
1

SETLOCAL私はあなたが を持っているのではないかと疑っていますa.bat。SETLOCAL の後に行われたすべての環境変更は、一致するENDLOCAL(またはEOF同じコンテキストで) 到達したときに取り消されます。

終了方法に応じて、その特定の CMD セッションの期間を期待しているように見えるため、既存のパスの先頭に追加する順序a.batで何かが必要になります。ENDLOCAL&set "Path=dir_b;%PATH%"&GOTO :EOFdir_b

于 2013-07-13T08:48:10.350 に答える
0

Windows パスと競合するため、PATH は使用しないでください。代わりに、次を追加できます。

pushd path_to_your_dir_b

次に、適切な場所に popd を追加します

于 2013-07-12T20:54:52.060 に答える