call 从批处理程序调用另一个批处理程序

call有几种用法

第一种用法,也就是最常用的一种,调用另一个批处理,在被调用的批处理执行完后在执行call下面的命令。如:

@echo off

call a.bat

dir c:\

pause

如果在被调用的批处理里面有参数,调用的时候需要在后面加上参数。

如:

a.bat内容:

@echo off

echo %0 %1

b.bat内容:

@echo off

call a.bat hello

dir c:\

pause

那么,在执行b.bat的时候,会将hello赋值给%1,而%0代表a.bat自己。

(在批处理中,可以使用%*代表所有参数%1-%9代表9个参数,%0代表批处理自己,其扩展用法见call /?,在讲for的时候也会讲到)

在这里讲下goto :eof的用法,如:

a.bat内容:

@echo off

echo %0 %1

goto :eof

b.bat内容:

@echo off

call a.bat hello

dir c:\

pause

这里,在显示完hello后,会执行dir c:\并暂停,如果将goto :eof改成exit,在显示完hello后就会自动退出。因为goto :eof后会转到a.bat结尾,即只退出a.bat然后会继续执行dir;由于call a.bat,在执行a.bat和b.bat是一个CMD窗口,exit的话就会直接退出这个窗口,这就是goto :eof和exit区别。

call的第二种用法,调用一个命令,如:call ping 127.1,这和直接ping 127.1看似是一样的,但还是有区别的。主要用法就是call set,在后面讲延迟环境变量的时候慢慢体会。

call的第三种用法,调用一个应用程序,call notepad.exe。call可以这么用,但一般在调用应用程序的时候会使用start,很少用call。

call的第四种用法,调用本批处理中的一个标签。如:

@echo off

call :no1

start notepad.exe

exit

:no1

start calc

ping /n 2 127.1>nul

在这里会先打开计算器,然后打开记事本。在call标签的时候要加上“:”。

这与goto有什么区别呢?在看一个例子:

@echo off

goto :no1

start notepad.exe

exit

:no1

start calc

ping /n 2 127.1>nul

这里只会打开计算器,并不打开记事本。

因为,goto :no1是转到标签:no1处运行,运行完就退出,而call是调用:no1,运行完继续执行call下面的命令

DOS命令 bat-call的用法的更多相关文章

  1. 给dos命令“.bat”文件换图标

    最近客户有个需求:给企业建立一个FTP服务器,并且给不同的部门分配不同的目录和管理权限. 这个好实现!直接安装serv-u,进行一番设置,搞定! 不过客户嫌登陆FTP操作麻烦,输入ip,输入账号什么的 ...

  2. DOS 命令大全用法详解

    注意事项 DOS命令不区分大小写,比如C盘的Program Files,在dos命令中完全可以用"program files"代替,加上英文引号是因为名称的中间有空格(即多于一个词 ...

  3. DOS命令行简单用法

    DOS命令行简单用法 基本用法 1.cd(回车)从当前目录切回到根目录. 2.dir(回车)列出当前目录下的所有文件. 3.md kkk(回车)在当前目录下创建一个名称为kkk的文件夹. 4.rd k ...

  4. [转] DOS命令for用法详解

    [From] http://www.jb51.net/article/31284.htm for帮助文档 对一组文件中的每一个文件执行某个特定命令. FOR %variable IN (set) DO ...

  5. 实验一、熟悉DOS命令

    实验一.熟悉DOS命令 实验一.熟悉DOS命令 一.        实验目的 1.从操作系统理论的观点来了解和掌握DOS有关用户接口的特点: 2.熟悉常用DOS操作命令(md.cd.rd.copy.m ...

  6. Dos命令完成文件拷贝

    Dos命令初阶--文件拷贝 1.XCOPY命令 可以在cmd中录入:XCOPY /? 即可查看帮助 帮助: XCOPY Microsoft Windows [版本 6.2.9200] (c) 2012 ...

  7. DOS命令大全(经典收藏)

    net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user: ...

  8. 20种常用的DOS命令小结

    先介绍一下通配符的概念. 通配符*和? *表示一个字符串 ?只代表一个字符 注意通配符只能通配文件名或扩展名,不能全都表示.例如我们要查找以字母y开头的所有文件,可以输入以下命令:dir y*.*:如 ...

  9. 常用DOS命令参数详解

    一.DIR命令的格式: dir [D:][PATH][NAME][[/A][:attrib]][/o:[sorted][/s][/b][/l][/c[h] (1)dir /a:attrib 缺省包含所 ...

  10. dos 命令集

    dos下下载远程服务器的文件 setp C:\WINDOWS\system32\cmd.exesetp C:\RECYCLER\cmd.exever --------查看window版本net use ...

随机推荐

  1. 模式匹配之Kmp算法

    Kmp: 算法定义借鉴wikipedia: http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm#KMP_ ...

  2. Win32 error code message

    http://fit.c2.com/fit/files/LispPlatform/lisp/clisp-2.28/src/errwin32.d # Calls a function, passing ...

  3. Red Hat Enterprise Linux上配置SQL Server Always On Availability Group

    http://www.cnblogs.com/lavender000/p/6946848.html

  4. wince5.0 plat form builder下载

    学习嵌入式开发的朋友都知道,嵌入式开发主要用到2个软件一个是Platform Builder for Windows CE 5.0一个是VS.NET2005,其中VS.NET2005网上很容易下载,现 ...

  5. AS3.0 Vector的运用

    使用Vector类编程 一个array(数组)就像是把一套变量组织在一起的容器.单个数组可以含有许多不同的值.你可以储存和取得数组中的单个值(也就是数组elements(元素)).你也可以通过直接操作 ...

  6. Synopsys EDA工具在LinuxMint 18(Ubuntu 16.04.2)安装注意事项

    Synopsys家的工具官方对Linux发行版支持为RHEL 5/6/7及SUSE 12/13,对于2014版本的工具(DC.ICC.PT.VCS.HSPICE等).其实,在Debian系及衍生版本上 ...

  7. C++ 重写重载重定义区别

    C++ 重写重载重定义区别 (源自:http://blog.163.com/clevertanglei900@126/blog/static/111352259201102441934870/) 1 ...

  8. 拼车专用道 HOV lane

    近几年,不少人开始找人拼车上下班,这样不仅能减少车辆开支,同时也能为缓解交通拥堵贡献一份力量.在国外,不少城市都在交通高峰时段为这一类车辆开设专用车道,叫做HOV lane.

  9. 转: 腾讯Bugly干货分享:Android应用性能评测调优

    转:http://www.kuqin.com/shuoit/20150618/346693.html?utm_source=www.race604.com 前言 在智能手机App竞争越来越激烈的今天, ...

  10. Maven版本的ssm框架项目常见依赖pom.xml

    <properties> <junit.version>4.12</junit.version> <spring.version>4.3.1.RELEA ...