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"

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

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

  • 相关阅读:
    力扣76题、567题、438题、3题(滑动窗口算法)
    【转】#ifndef/#define/#endif使用详解
    【转】为什么要用Source Insight呢?
    【转】list_entry通俗理解方法
    【转】c语言函数定义、函数声明、函数调用以及extern跨文件的变量引用
    【转】GDB attach到一个进程
    【转】Linux cat命令详解
    【转】C语言中“.”与“->”有什么区别?(详解)
    【转】C语言中"."和"->"的区别
    【转】Linux命令详解之–cd命令
  • 原文地址:https://www.cnblogs.com/gekal/p/3217773.html
Copyright © 2011-2022 走看看