0

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

我想要的是在执行a.bat之后,我将能够调用b.bat。我现在的方法是设置一个 PATH 到 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 之间设置 path=%path%;%cd%也可以解决问题

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

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

^-要通过自制的子函数' setAbsPath '来查看它 -> 或者代替调用,您也可以使用For - 其他线程中的详细信息


对于那些可能还想运行 Microsoft Visual C++ 6.0(anno 1998) > 而不安装它的人来说,这只是一个小注解……并且想知道那个 f***“标准”包括在哪里?!

\vc98\include\ 中大约有 17 个文件已手动切碎 8 + 3 个字符。喜欢:
算法 -> 算法
strstrem -> strstream
xception -> 异常

所以要意识到这一点并有创意!

于 2014-03-01T14:41:14.900 回答
1

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

set PATH=C:\User A\Folder X\dir_b;%PATH%
于 2013-07-13T02:36:35.007 回答
1

我怀疑你有一个SETLOCALin a.batENDLOCAL当达到匹配时(或EOF在同一上下文中),在SETLOCAL 之后所做的任何环境更改都会被撤销。

根据您的终止方式a.bat,您需要在特定 CMD 会话期间按照您似乎期望的顺序添加到现有路径的某些内容ENDLOCAL&set "Path=dir_b;%PATH%"&GOTO :EOFdir_b

于 2013-07-13T08:48:10.350 回答
0

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

pushd path_to_your_dir_b

然后在合适的地方添加popd

于 2013-07-12T20:54:52.060 回答