返回顶部
首页 > 资讯 > 精选 >批处理命令call、start、goto怎么使用
  • 929
分享到

批处理命令call、start、goto怎么使用

2023-06-29 23:06:07 929人浏览 安东尼
摘要

本篇内容介绍了“批处理命令call、start、Goto怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、call命令CALL从一个

本篇内容介绍了“批处理命令call、start、Goto怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、call命令

CALL从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call命令主要有2种用法,一种是调用其他批处理程序(*.bat,*.exe,*.cmd,*.COM),目前常用的是*.exe文件和*.bat文件;另一种是CALL :label arguments

C:\Users\Administrator>help call从批处理程序调用另一个批处理程序。 CALL [drive:][path]filename [batch-parameters]   batch-parameters   指定批处理程序所需的命令行信息。 如果命令扩展被启用,CALL 会如下改变: CALL 命令现在将卷标当作 CALL 的目标接受。语法是:     CALL:label arguments 一个新的批文件上下文由指定的参数所创建,控制在卷标被指定后传递到语句。您必须通过达到批脚本文件末两次来 "exit" 两次。第一次读到文件末时,控制会回到 CALL 语句的紧后面。第二次会退出批脚本。键入GOTO /?,参看 GOTO :EOF 扩展的描述,此描述允许您从一个批脚本返回。 另外,批脚本文本参数参照(%0、%1、等等)已如下改变:       批脚本里的 %* 指出所有的参数(如 %1 %2 %3 %4 %5 ...)     批参数(%n)的替代已被增强。您可以使用以下语法:          %~1         - 删除引号("),扩展 %1         %~f1        - 将 %1 扩展到一个完全合格的路径名         %~d1        - 仅将 %1 扩展到一个驱动器号         %~p1        - 仅将 %1 扩展到一个路径         %~n1        - 仅将 %1 扩展到一个文件名         %~x1        - 仅将 %1 扩展到一个文件扩展名         %~s1        - 扩展的路径只含有短名         %~a1        - 将 %1 扩展到文件属性         %~t1        - 将 %1 扩展到文件的日期/时间         %~z1        - 将 %1 扩展到文件的大小         %~$PATH:1   - 查找列在 PATH 环境变量的目录,并将 %1                       扩展到找到的第一个完全合格的名称。如果                       环境变量名未被定义,或者没有找到文件,                       此修改符会扩展到空字符串    可以组合修改符来取得多重结果:        %~dp1       - 只将 %1 扩展到驱动器号和路径        %~nx1       - 只将 %1 扩展到文件名和扩展名        %~dp$PATH:1 - 在列在 PATH 环境变量中的目录里查找 %1,                      并扩展到找到的第一个文件的驱动器号和路径。        %~ftza1     - 将 %1 扩展到类似 DIR 的输出行。    在上面的例子中,%1 和 PATH 可以被其他有效数值替换。    %~ 语法被一个有效参数号码终止。%~ 修定符不能跟 %* 使用

1.1调用批处理

命令格式CALL [drive:][path]filename [batch-parameters]

创建文件test.bat 调用文件call.bat

@echo offset a=环境变量call call.bat hi hellopauseexit /b 0
::call.batecho %1echo %2echo %a%

运行结果如下:

批处理命令call、start、goto怎么使用

注意:

只在test.bat中使用命令@echo off,call.bat中也没有回显命令;

 2、在test.bat中设置环境变量,call.bat中可使用该变量

1.2调用目标标签

注意:

调用标签时需要“:”

调用标签后继续处理后面命令

实例一

@echo offcall :interCall hi helloecho 下一步pauseexit /b 0 :intercallecho %1echo %2

运行结果:

批处理命令call、start、goto怎么使用

实例二

@echo offcall :interCallecho 下一步:intercallecho hiecho helloPAUSEexit /b 0

批处理命令call、start、goto怎么使用

2、调用call 和不用call 的区别

使用call 不终止父处理进程,不用call 调用批处理后,父处理进程终止,不再处理后续命令

rem test.bat@echo offset a=环境变量call call.bat hi helloecho 下一步pauseexit /b 0
rem call.batecho %1echo %2echo %a%pause

批处理命令call、start、goto怎么使用

2去掉call call.bat hi hello中的call运行结果如下:

批处理命令call、start、goto怎么使用

3、goto 命令

 帮助文档如下

C:\Users\Administrator>help goto将 cmd.exe 定向到批处理程序中带标签的行。 GOTO label   label   指定批处理程序中用作标签的文字字符串。 标签必须单独一行,并且以冒号打头。如果命令扩展被启用,GOTO 会如下改变: GOTO 命令现在接受目标标签 :EOF,这个标签将控制转移到当前批脚本文件的结尾。不定义就退出批脚本文件,这是一个容易的办法。有关能使该功能有用的 CALL 命令的扩展描述,请键入CALL /?。

1 goto 后面不需要":",直接加label 

2 goto 跳至指定label后,不会处理被跳过的命令语句 

@echo offgoto interCallecho 下一步:intercallecho hiecho helloPAUSEexit /b 0

运行结果:并没有处理“echo 下一步”该语句

批处理命令call、start、goto怎么使用

4、start类似于创建一个线程

C:\Users\Administrator>help start启动一个单独的窗口运行指定的程序或命令。 START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]      [/node <NUMA node>] [/AFFINITY <hex affinity mask>] [/WaiT] [/B]      [command/program] [parameters]     "title"     在窗口标题栏中显示的标题。    path        启动目录。    B           启动应用程序,但不创建新窗口。应用程序已忽略 ^C 处理。                除非应用程序启用 ^C 处理,否则 ^Break 是唯一可以中断                该应用程序的方式。    I           新的环境将是传递给 cmd.exe 的原始环境,而不是当前环境。     MIN         以最小化方式启动窗口。    MAX         以最大化方式启动窗口。    SEPARATE    在单独的内存空间中启动 16 位 windows 程序。    SHARED      在共享内存空间中启动 16 位 Windows 程序。    LOW         在 IDLE 优先级类中启动应用程序。    NORMAL      在 NORMAL 优先级类中启动应用程序。    HIGH        在 HIGH 优先级类中启动应用程序。    REALTIME    在 REALTIME 优先级类中启动应用程序。    ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序。    BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序。    NODE        将首选非一致性内存结构 (NUMA) 节点指定为十进制整数。    AFFINITY    将处理器关联掩码指定为十六进制数字。进程被限制在这些                处理器上运行。                 当 /AFFINITY 和 /NODE 结合时,会对关联掩码进行不同的解释。                指定关联掩码,正如 NUMA 节点的处理器掩码正确移动到零位                起始位置一样。进程被限制在指定关联掩码和 NUMA 节点之间的                那些通用处理器上运行。如果没有通用处理器,则进程被限制在                指定的 NUMA 节点上运行。    WAIT        启动应用程序并等待它终止。    command/program                如果它是内部 cmd 命令或批文件,则该命令处理器是使用                cmd.exe 的 /K 开关运行的。这表示运行该命令之后,该窗口                将仍然存在。                 如果它不是内部 cmd 命令或批文件,则它就是一个程序,并将                作为一个窗口化应用程序或控制台应用程序运行。     parameters  这些是传递给 command/program 的参数。 注意: 在 64 位平台上不支持 SEPARATE 和 SHARED 选项。 通过指定 /NODE,可按照利用 NUMA 系统中的内存区域的方式创建进程。例如,可以创建两个完全通过共享内存互相通信的进程以共享相同的首选 NUMA 节点,从而最大限度地减少内存延迟。如有可能,它们即会分配来自相同 NUMA 节点的内存,并且会在指定节点之外的处理器上自由运行。     启动 /NODE 1 application1.exe    启动 /NODE 1 application2.exe 这两个进程可被进一步限制在相同 NUMA 节点内的指定处理器上运行。在以下示例中, application1 在节点的两个低顺序处理器上运行,而 application2在该节点的其后两个处理器上运行。该示例假定指定节点至少具有四个逻辑处理器。请注意,节点号可更改为该计算机的任何有效节点号,而无需更改关联掩码。     启动 /NODE 1 /AFFINITY 0x3 application1.exe    启动 /NODE 1 /AFFINITY 0xc application2.exe 如果命令扩展被启用,通过命令行或 START 命令的外部命令调用会如下改变: 将文件名作为命令键入,非可执行文件可以通过文件关联调用。    (例如,Word.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。    关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和FTYPE 命令。 执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示符。如果在命令脚本内执行,该新行为则不会发生。 如果执行的命令行的第一个符号是不带扩展名或路径修饰符的字符串 "CMD","CMD" 会被 COMSPEC 变量的数值所替换。这防止从当前目录提取 CMD.EXE。 如果执行的命令行的第一个符号没有扩展名,CMD.EXE 会使用PATHEXT 环境变量的数值来决定要以什么顺序寻找哪些扩展名。PATHEXT 变量的默认值是:         .COM;.EXE;.BAT;.CMD     请注意,该语法跟 PATH 变量的一样,分号隔开不同的元素。 查找可执行文件时,如果没有相配的扩展名,看一看该名称是否与目录名相配。如果确实如此,START 会在那个路径上调用Explorer。如果从命令行执行,则等同于对那个路径作 CD /D。

1  可以和 第2段“调用call 和不用call 的区别” 代码作对比

@echo offset a=环境变量start call.bat hi helloecho 下一步pauseexit /b 0

call.bat内容如下 

rem call.batecho %1echo %2echo %a%pause

运行结果

批处理命令call、start、goto怎么使用

批处理命令call、start、goto怎么使用

“批处理命令call、start、goto怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 批处理命令call、start、goto怎么使用

本文链接: https://lsjlt.com/news/326783.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 批处理命令call、start、goto怎么使用
    本篇内容介绍了“批处理命令call、start、goto怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、call命令CALL从一个...
    99+
    2023-06-29
  • 批处理命令call、start、goto的使用
    目录1、call命令1.1调用批处理1.2调用目标标签2、调用call 和不用call 的区别3、goto 命令4、start类似于创建一个线程1、call命令 CALL从一个批处理...
    99+
    2024-04-02
  • cmd批处理中goto call命令怎么用
    小编给大家分享一下cmd批处理中goto call命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一个批处理 goto命令使用方法将 cmd....
    99+
    2023-06-09
  • 批处理命令Start怎么用
    这篇文章将为大家详细讲解有关批处理命令Start怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Start 启动单独的“命令提示符”窗口来运行指定程序或命令。如果在没有参数的情况下使用,start 将...
    99+
    2023-06-08
  • Bat脚本-Call,Start,直接调用,goto 四种方式调用批处理
    目录1、call命令1.1调用批处理1.2调用目标标签2、调用call 和不用call 的区别3、goto 命令4、start类似于创建一个线程以下是补充主要用途start的语法就是...
    99+
    2022-12-26
    Bat Call Start 直接调用
  • bat批处理if命令怎么使用
    在批处理中,可以使用`if`命令来执行条件判断。下面是`if`命令的用法:1. 语法:```batchif condition co...
    99+
    2023-08-11
    bat批处理
  • Norton Ghost批处理命令怎么用
    这篇文章将为大家详细讲解有关Norton Ghost批处理命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。.Ghost批处理文件的基本格式   Ghost-clone,mode={copy│loa...
    99+
    2023-06-09
  • 批处理中Set命令怎么用
    小编给大家分享一下批处理中Set命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!set,E文翻译过来就是“设置”的意思,相当于数学里的“令”。 如:set...
    99+
    2023-06-08
  • 如何使用批处理命令的tree命令
    这篇文章主要讲解了“如何使用批处理命令的tree命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用批处理命令的tree命令”吧!tree ,在英语中的基本含义是“树”,在cmd中,t...
    99+
    2023-06-08
  • 如何使用批处理for命令
    这篇文章主要讲解了“如何使用批处理for命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用批处理for命令”吧!FOR这条命令基本上都被用来处理文本,但还有其他一些好用的功能!看看他...
    99+
    2023-06-08
  • 如何使用批处理more命令
    这篇文章主要介绍“如何使用批处理more命令”,在日常操作中,相信很多人在如何使用批处理more命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用批处理more命令”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-08
  • DOS批处理中if命令怎么用
    这篇文章主要为大家展示了“DOS批处理中if命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“DOS批处理中if命令怎么用”这篇文章吧。现在开始:在CMD使用IF /打开IF的系统帮助(自...
    99+
    2023-06-08
  • DOS批处理中set命令怎么用
    这篇文章将为大家详细讲解有关DOS批处理中set命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、用set命令设置自定义变量显示、设置或删除 cmd.exe 环境变量。SET [variable...
    99+
    2023-06-08
  • bat批处理中if命令怎么用
    小编给大家分享一下bat批处理中if命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!if 命令示例详解 if,正如它E文中的意思,就是“如果”的...
    99+
    2023-06-09
  • 批处理中的echo命令怎么用
    这篇文章主要介绍了批处理中的echo命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Echo显示当前ECHO的状态:ECHO ON 或者ECHO OFF ECHO ...
    99+
    2023-06-08
  • DOS批处理中DATE命令怎么用
    这篇文章主要介绍了DOS批处理中DATE命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.系统帮助 C:\>date / 显示或设置日期。 DATE [/T ...
    99+
    2023-06-08
  • 批处理BAT脚本中set命令怎么使用
    在批处理BAT脚本中,set命令用于设置环境变量或者给变量赋值。下面是一些set命令的用法示例: 设置环境变量: set MYV...
    99+
    2024-03-01
    BAT
  • DOS批处理命令For循环命令如何使用
    这篇文章主要介绍了DOS批处理命令For循环命令如何使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。for命令是一种对一系列对象依次循环执行同一个或多个命令的在命令行或批处...
    99+
    2023-06-08
  • 批处理copy命令的具体使用
    目录示例单个文件的复制批量复制文件合并文件没有后缀的文件怎么复制?本文的命令说明来自与DOS命令帮助说明,如果与DOS命令帮助说明不同,请以DOS命令帮助说明为准。 语法 copy[...
    99+
    2024-04-02
  • 批处理中使用for命令的有什么bug
    这篇文章主要介绍了批处理中使用for命令的有什么bug,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关于冒号:当某行内容以 : 打头时,用 for /f "toke...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作