DOS批处理命令-call命令

call命令

在批处理中调用别的批处理或者可运行程序或者

バッチ プログラムを別のバッチ プログラムから呼び出します。

语法

1、CALL [驱动盘符:][路径]文件名 [参数]

调用并执行[驱动盘符:][路径]文件名对应的处理程序,并将参数传递给该处理(参数之间用空白字符隔开)

这样就支持了bat程序的扩展

例如,我们可以调用bat,vbs,exe等处理来扩展bat程序的处理能力。

@echo off
call F:\tmp\called.bat "hello world"

在路径【F:\tmp\】下面建个【called.bat】文件

文件内添加以下代码

@echo off
echo %1

* %1是输出传递该处理的第一个参数

运行结果为:

"hello world"

在例如,我们使用记事本来打开我们called.bat文件

notepad a.bat

执行上面这条语句,就会使用记事本来打开当前路径下的a.bat文件。

 

2、CALL :标号 引数

将引数传递给标号指定的处理,并将执行标号指定的处理,然后返回调用处,继续执行下面的处理。

@echo off
call :called "test call"

:called
echo begin called
echo %1
echo end called

运行结果(a.bat a.bat):

begin called
"test call"
end called
begin called
a.bat
end called

发现标签内的部分被执行了两边。投一次是call调用的时候执行的("test call"),call执行后,bat顺序执行以后,接下来是继续执行下标号的内容(a.bat

解决这个问题,我们需要在我们需要终止的时候,添加一个【exit /b】出来

 

程序修改以后:

@echo off
call :called1 "test call1"
call :called2 "test call2"

exit /b

:called1
SETLOCAL
    echo %1
    exit /b
ENDLOCAL

:called2
SETLOCAL
    echo %1
    exit /b
ENDLOCAL

执行结果:

"test call1"
"test call2"

看到这个地方执行状况,你不是觉得这个东西很像一个函数呢?

应该说这就是一个函数。以后我们想提取函数的时候就这么写了。

posted @ 2013-07-26 18:45  鸿鹰  阅读(3791)  评论(0编辑  收藏  举报