bat文件间调用并传值

时间:2022-09-29 23:21:52

一个.bat 文件调用另一个 .bat 文件,为了使被调用者执行完后,回到调用文件,需要使用call命令。


bat文件间调用并传值的实例

  (注:本实例中a.bat和b.bat文件都放在E:盘根目录下)

    (1)主调文件a.bat,代码如下:     

cd \
cd d:

pause
call E:/b.bat d
pause

    命令注释:调用d盘根目录下的b.bat文件,并将参数值d传入到b.bat文件中。

    (call命令: 调用另一个批处理文件。如果不用call而直接调用别的批处理文件--即将call从上面代码中去掉,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)

 

    (2)被调文件b.bat,代码如下:

 @echo off
for %%a in (%1) do (
if not %%a equ "" (
 start  %%a:
)
)

echo 接收完毕.....
pause

    命令注释:声明一个变量a--%%a,接收a.bat文件中的call b.bat d命令传入的参数值d;命令非空时执行start d:命令--即打开D盘根目录窗口。

    (%%a:bat批处理文件中,声明变量使用%%变量名的方式;而命令行中使用%变量名的方式。

      %1:%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格、或者Tab分隔的字符串变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。a.bat文件中,call b.bat d命令中的d,即为%1.

      start :1.打开文件夹必须用START命令
              2.如果程序在X:\WINDOWS或X:\WINDOWS\SYSTEM32目录下的话,可以直接使用start *.exe运行

              该程序而不必在这个目录下

     )