在Windows中,我有两个.bat文件,比如说dir_a / a.bat和dir_b / b.bat。
我想要的是在执行a.bat之后,我将能够调用b.bat。我现在的方法是将PATH设置为dir_b,所以在执行a.bat的终端中,我可以调用b.bat并且能够执行b.bat。然而在a.bat中放置“set PATH = dir_b;%PATH%”是行不通的。我做错了什么?
答案 0 :(得分:2)
对于您正在处理相对路径的情况: 您可能会注意到:
set path=%path%;"\..\..\..\vc98\bin\"
将^^ 无法正常工作 ^^!
所以这样做:
pushd "..\..\..\vc98\bin\"
path %cd%; %path%
popd
......当然还有 设置路径=%路径%;%cd% pushd和popd之间也会有诀窍
那么请看这里: 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个字符。像:
algrithm - >算法
strstrem - > strstream
xception - >例外
所以要注意并有创意!
答案 1 :(得分:1)
您必须在b.bat文件中包含绝对路径;例如:
set PATH=C:\User A\Folder X\dir_b;%PATH%
答案 2 :(得分:0)
不要使用PATH,因为它与Windows路径冲突。相反,您可以添加以下内容:
pushd path_to_your_dir_b
然后在适当的地方添加popd
答案 3 :(得分:0)
我怀疑SETLOCAL
中有a.bat
。在达到匹配的ENDLOCAL
(或同一上下文中的EOF
)时,在SETLOCAL撤消后进行的任何环境更改。
根据您终止a.bat
的方式,您需要ENDLOCAL&set "Path=dir_b;%PATH%"&GOTO :EOF
的顺序,这将在您现有的路径前面加dir_b
,因为您似乎在特定的CMD会议。