zoukankan      html  css  js  c++  java
  • DOS命令 bat-call的用法

    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下面的命令

  • 相关阅读:
    Atitit.ide eclipse编译速度慢的解决
    Atitit.ide eclipse编译速度慢的解决
    Atitit.可视化与报表原理与概论
    Atitit.可视化与报表原理与概论
    Atitit.数据检索与网络爬虫与数据采集的原理概论
    Atitit.数据检索与网络爬虫与数据采集的原理概论
    Atitit 游戏的原理与概论attilax总结
    Atitit 游戏的原理与概论attilax总结
    Atiti.ui原理与gui理论
    Atiti.ui原理与gui理论
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/7082646.html
Copyright © 2011-2022 走看看