批处理命令call、start、goto的使用 | 您所在的位置:网站首页 › 库卡goto指令怎么用 › 批处理命令call、start、goto的使用 |
目录1、call命令1.1调用批处理1.2调用目标标签2、调用call 和不用call 的区别3、goto 命令4、start类似于创建一个线程1、call命令
CALL从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call命令主要有2种用法,一种是调用其他批处理程序(*.bat,*.exe,*.cmd,*.COM),目前常用的是*.exe文件和*.bat文件;另一种是CALL :label arguments C:UsersAdministrator>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 off set a=环境变量 call call.bat hi hello pause exit /b 0 ::call.bat echo %1 echo %2 echo %a%运行结果如下:
注意: 1、只在test.bat中使用命令@echo off,call.bat中也没有回显命令; 2、在test.bat中设置环境变量,call.bat中可使用该变量 1.2调用目标标签注意: 1、调用标签时需要“:” 2、调用标签后继续处理后面命令 实例一 @echo off call :interCall hi hello echo 下一步 pause exit /b 0 :intercall echo %1 echo %2运行结果:
实例二 @echo off call :interCall echo 下一步 :intercall echo hi echo hello PAUSE exit /b 01、使用call 不终止父处理进程,不用call 调用批处理后,父处理进程终止,不再处理后续命令 rem test.bat @echo off set a=环境变量 call call.bat hi hello echo 下一步 pause exit /b 0 rem call.bat echo %1 echo %2 echo %a% pause2.2去掉call call.bat hi hello中的call运行结果如下: 帮助文档如下 C:UsersAdministrator>help goto 将 cmd.exe 定向到批处理程序中带标签的行。 GOTO label label 指定批处理程序中用作标签的文字字符串。 标签必须单独一行,并且以冒号打头。如果命令扩展被启用,GOTO 会如下改变: GOTO 命令现在接受目标标签 :EOF,这个标签将控制转移到当前批脚本文件的结尾。不定义就退出批脚本文件,这是一个容易的办法。有关能使该功能有用的 CALL 命令的扩展描述,请键入CALL /?。3.1 goto 后面不需要":",直接加label 3.2 goto 跳至指定label后,不会处理被跳过的命令语句 @echo off goto interCall echo 下一步 :intercall echo hi echo hello PAUSE exit /b 0运行结果:并没有处理“echo 下一步”该语句 4.1 可以和 第2段“调用call 和不用call 的区别” 代码作对比 @echo off set a=环境变量 start call.bat hi hello echo 下一步 pause exit /b 0call.bat内容如下 rem call.bat echo %1 echo %2 echo %a% pause运行结果 到此这篇关于批处理命令call、start、goto的使用的文章就介绍到这了,更多相关批处理call、start、goto内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程! 原文地址:https://blog.csdn.net/qq_40951833/article/details/107396031 |
CopyRight 2018-2019 实验室设备网 版权所有 |