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

时间:2013-07-12 20:26:38

标签: batch-file path cmd

在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%”是行不通的。我做错了什么?

4 个答案:

答案 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会议。