千家信息网

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

发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,本篇内容介绍了"批处理命令call、start、goto怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年01月17日批处理命令call、start、goto怎么使用

本篇内容介绍了"批处理命令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 cho %2echo %a%

运行结果如下:

注意:

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

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

1.2调用目标标签

注意:

1、调用标签时需要":"

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

实例一

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

运行结果:

实例二

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

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

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

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

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

3、goto 命令

帮助文档如下

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

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

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

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

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

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

C:\Users\Administrator>help start启动一个单独的窗口运行指定的程序或命令。 START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]      [/NODE ] [/AFFINITY ] [/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。

4.1 可以和 第2段"调用call 和不用call 的区别" 代码作对比

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

call.bat内容如下

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

运行结果

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

命令 程序 文件 处理 应用程序 应用 运行 节点 变量 处理器 环境 脚本 标签 路径 进程 关联 内存 扩展名 优先级 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库王珊学生 驱动开发和软件开发哪个好 企业服务器管理员副业 做软件开发累吗 云霄县礼锋网络技术工作室 战舰帝国苹果服务器失效 网络安全法管理的主要内容 深圳工控软件开发如何收费 电脑包含服务器吗 用友软件开发语言 计算机网络技术有哪些分支 最年轻的网络安全专家 小规模计算机软件开发 财务软件开发设计属于IT 天津警官学院网络安全监察 男友做软件开发的给我借钱投资 赫点网络技术有限公司怎么样 英雄联盟手游服务器网址 网络安全员审批表 u点服务器 网络不通 联想v5030服务器怎么关机 数据库查询指定条件语句 关系数据库用什么存储及管理数据 计算机网络技术两年制 魂师对决五一开几个新服务器 天津电商软件开发公司 软件开发者个人简介 固定ip如何接入dchp服务器 黑芒君服务器怎么被炸了 方舟2人服务器要什么配置
0