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"

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

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

转载于:https://www.cnblogs.com/gekal/p/3217773.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值