【WINDOWS / DOS 批处理】call命令详解

发布于:2022-11-28 ⋅ 阅读:(1127) ⋅ 点赞:(0)

命令格式

格式一:call  [ [Drive:] [Path]  FileName  [Pararneters] ] 

格式二:call  [:label [arguments] ]

命令功能

  使用call命令,可以调用其它程序(包括批处理文件、其它执行命令)或标签

格式一

call  [ [Drive:] [Path]  FileName  [Pararneters] ]  

Drive 参数

  指定 FileName 所在的驱动器名称,例如:C、D

Path 参数

  指定 FileName 所在的路径

【 FileName 参数

 指定的要调用的文件,该文件必须是批处理文件或执行文件

Pararneters参数

  指定调用 FileName 时传递的参数 ,多个参数使用空白分隔 

        示例

::demo.bat
@echo off
echo  %1

        运行

C:\>call  demo.bat  one
 one
C:\>

格式二

call  [:label [arguments] ] 

:label 参数

 指定要调用的标签

        示例     

::demo.bat
@echo off
echo  before
call :target
echo  after

:target
echo  target

        运行 

C:\>demo
 before
 after
 target
C:\>

arguments 参数

  指定调用 :label 标签时传递的参数,多个参数使用空白分隔  关于标签的参数https://blog.csdn.net/mt15306338066/article/details/127212997

使用call调用批处理文件和不用call调用批处理文件的区别】 

        示例

call.bat的内容如下:

::call.bat
echo  %var%

use-call.bat的内容如下:

::use-call.bat
@echo off
set var=this is a book.
call  call.bat
echo  next

use-not-call.bat的内容如下: 

::use-not-call.bat
@echo off
set var=this is a book.
call.bat
echo  next

        运行 

C:\>use-call.bat
 this is a book.
 next
C:\>use-not-call.bat
 this is a book.
C:\>

        解析

1、在父批处理文件(如上例:use-not-call.bat)中,不用call命令调用子批处理文件(如上例:call.bat),则子批处理文件执行完成后自动退出整个程序。即:父批处理文件中,子批处理文件调用语句(如上例:call.bat)的后续命令不会被执行

2、在父批处理文件(如上例:use-call.bat)中,使用call命令调用子批处理文件(如上例:call.bat),则子批处理文件执行完成后会继续执行call命令(如上例:call  call.bat)的后续语句。

3、使用call调用子批处理文件(或不用call命令调用子批处理文件)时的注意点:

  • 只在父批处理文件(如上例:use-not-call.bat use-call.bat)中使用命令“@echo  off”“@echo  off”命令对子批处理文件(如上例:call.bat)也有效
  • 在父批处理文件中设置的环境变量(如上例:var),也能在子批处理文件中使用

使用 call 命令调用批处理文件和使用 start 命令调用批处理文件的区别】 

        示例

call.bat的内容如下:

::call.bat
echo  %var%

use-call.bat的内容如下:

::use-call.bat
@echo off
set var=this is a book.
call  call.bat
echo  next

start.bat的内容如下: 

::start.bat
@echo off
set var=this is a book.
start  call.bat
echo  next

        运行 

                解析 

在父批处理文件(如上例:start.bat)中,使用 start命令调用子批处理文件(如上例:call.bat),则start命令会创建一个新进程执行子批处理文件。这时,在父批处理文件(如上例:use-call.bat)中,子批处理文件调用语句(如下例:start  call.bat)的后续命令会被同时执行

写作不易,如果您觉得对您有用,请 “在下面一圈三连”。 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到