如何在Windows中将PATH设置为批处理文件

How to set a PATH to a batch file in windows

在Windows中,我有两个.bat文件,比如dir_a/a.bat和dir_b/b.bat。

我想要的是,在执行了a.bat之后,我可以调用b.bat。我现在的方法是设置一个指向dir_b的路径,所以在执行a.bat的终端中,我只需调用b.bat,就能执行b.bat。但是在a.bat中输入"set path=dir_b;%path%"不起作用。我做错了什么?


对于处理相对路径的情况:您可能会注意到:

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

不会工作的!

这样做:

1
2
3
pushd"..\..\..\vc98\bin"
path %cd%; %path%
popd

…当然还有设置路径=%path%;%cd%在pushd和popd之间也能做到这一点。

好吧,这里也可以看看:https://stackoverflow.com/a/6595206/3135511

1
2
3
...
call :setAbsPath ABS_PATH ..\
...

^-通过自制的子功能"setabsPath"执行此操作->或者,您也可以使用其他线程中的-details来代替调用。

And just a small side note for those who might also like to run Microsoft Visual C++ 6.0(anno 1998) > without install it...
... and wonder where's that f*** 'standard' include ?!

There are about 17 file in \vc98\include\ that have been manually chopped 8 + 3 chars. Like:
algrithm -> algorithm
strstrem -> strstream
xception -> exception

So be aware and creative about that !


必须包括b.bat文件的绝对路径;例如:

1
set PATH=C:\User A\Folder X\dir_b;%PATH%


我怀疑你在a.bat中有一个SETLOCAL。当达到匹配的ENDLOCALEOF时,在setlocal之后所做的任何环境更改都会被取消。

根据您终止a.bat的方式,您需要按照ENDLOCAL&set"Path=dir_b;%PATH%"&GOTO :EOF的顺序,在特定的cmd会话期间,它将预先终止dir_b到您的现有路径。


不要使用路径,因为它与Windows路径冲突。相反,您可以添加以下内容:

1
pushd path_to_your_dir_b

然后在适当的位置添加popd