zoukankan      html  css  js  c++  java
  • DOS批处理命令-call命令

    call命令

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

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

    语法

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

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

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

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

    @echo off
    call F:	mpcalled.bat "hello world"

    在路径【F: mp】下面建个【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"

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

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

  • 相关阅读:
    如何:为 Silverlight 客户端生成双工服务
    Microsoft Sync Framework 2.1 软件开发包 (SDK)
    Windows 下的安装phpMoAdmin
    asp.net安全检测工具 Padding Oracle 检测
    HTTP Basic Authentication for RESTFul Service
    Windows系统性能分析
    Windows Server AppFabric Management Pack for Operations Manager 2007
    Mongo Database 性能优化
    服务器未能识别 HTTP 标头 SOAPAction 的值
    TCP WAIT状态及其对繁忙的服务器的影响
  • 原文地址:https://www.cnblogs.com/gekal/p/3217773.html
Copyright © 2011-2022 走看看