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 に入れても機能しません。私は何を間違えましたか?
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 に入れても機能しません。私は何を間違えましたか?
相対パスを扱っている場合: 次のことに気付くかもしれません:
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 -> 例外ですから、それについて意識し、創造的にしてください!
SETLOCAL
私はあなたが を持っているのではないかと疑っていますa.bat
。SETLOCAL の後に行われたすべての環境変更は、一致するENDLOCAL
(またはEOF
同じコンテキストで) 到達したときに取り消されます。
終了方法に応じて、その特定の CMD セッションの期間を期待しているように見えるため、既存のパスの先頭に追加する順序a.bat
で何かが必要になります。ENDLOCAL&set "Path=dir_b;%PATH%"&GOTO :EOF
dir_b
Windows パスと競合するため、PATH は使用しないでください。代わりに、次を追加できます。
pushd path_to_your_dir_b
次に、適切な場所に popd を追加します