zoukankan      html  css  js  c++  java
  • Windows批处理命令学习二

    作者:朱金灿

    来源:http://blog.csdn.net/clever101

     

           继续学习Windows批处理命令。

     

    批处理文件参数:

    有点编程基础的人都知道函数有参数.批处理文件也有参数。批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"%"。

       %[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。

    动手实践:

    新建一个批处理文件a.bat,在里面输入命令:

    @echo off

    ping %1

    ping %2

     

    然后在命令控制台环境下输入命令:C:\Users\zhu>C:\a.bat www.163.com www.sina.com

    看看有什么效果,同时领悟下如何使用多个批处理文件参数。

     

    if命令

    if语句一共有3种模式,如下:

     

    IF [NOT]string1==string2 command

    IF [NOT]EXIST filename command

    IF [NOT]ERRORLEVEL number command

     NOT               指定只有条件为 false 的情况下, Windows XP 才应该执行该命令。

     ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定条件为 true。

     string1==string2  如果指定的文字字符串匹配,指定条件为 true。

     EXIST filename    如果指定的文件名存在,指定条件为 true。

     command           如果符合条件,指定要执行的命令。如果指定的条件为 FALSE,命令后可跟一个执行 ELSE关键字后的命令的 ELSE 命令。

    我们先讲解第一种:

    IF [NOT]string1==string2 command

    自然语句意思:如果string1==string2,那么执行command

    下面再举个能实际应用的if语句.

    自然语句:如果输入的参数为3,那么显示"a=3"

    计算机语句:

    @echo off

    if"%1"=="3" echo "a=3"

    或者写成

    @echo off

    if %1==3echo "a=3"

    注意:当要测试的时候,因在cmd底下,输入1.bat 3.因为这里用了是传递参数,具体看文章前部分"批处理文件参数".

    第二种:

    IF [NOT]EXIST filename command

    这条命令用语检测文件是否存在.如果存在,执行command.如果不存在,则什么也不显示.

    如:我们想检查e盘根目录下是否有一个叫2.txt的文件.如果存在,则显示exist.如果不存在,则什么也不显示.

    批处理命令如下:

    @echo off

    if existe:2.txt echo "exist 2.txt"

     

    第三种:

    比起前两种,第三种比较难懂,我也看得半懂不懂的。查了一些资料,大致理解了,理解IF[NOT] ERRORLEVEL number command的这句的关键是ERRORLEVEL这个到底指什么?

    原来每一行的DOS命令运行完,都有一个返回值(你可以把它比作是程序中的函数的返回值)。一般上一条命令的执行结果代码只有两结果,"成功"用0表示 "失败"用1表示.。ERRORLEVEL就是用来保存这个返回值的。就是假如ERRORLEVEL大于等于number(number为你给定的常数或批处理文件参数),则执行command。

     

    还是让我们做实验来理解吧。

    动手实践:

         新建一个批处理文件a.bat,在里面输入命令:

    @echo off

    ping %1

    ping %2

     

    然后在命令控制台环境下输入命令:C:\Users\zhu>C:\a.bat www.163.com www.sina.com

    看看有什么效果,同时领悟下如何使用多个批处理文件参数。

    @echo off

    net user

    IF ERRORLEVEL 1 echo net user 执行失败了!

     

         可能你要说:我想要提示执行命令的信息,那你可以这样写:

    @echo off

    net user

    IF NOT ERRORLEVEL 1 echo net user 执行成功了!

     

        可能你觉得这种写法别扭,同时你觉得应该是提示执行成功,反之提示失败。呵呵,那么我们就改成下面试试:

    @echo off

    net user

    if%ERRORLEVEL% == 0 (

    echo netuser 执行成功了!

    )else (

    echo netuser 执行失败了!

    )    

     

    这是if和else的配套使用,其中if %ERRORLEVEL% == 0是假如ERRORLEVEL等于0。值得注意的是if和else的配套使用有着严格的使用格式,必须是:

    if%ERRORLEVEL% == 0 (

    command   // 执行命令

    )else (

    command   // 执行命令

    )   

    goto命令

         说实话,看完这个命令我立即想起C语言的goto语句。事实上这个命令和C语言的goto语句也非常相像,也很简单。动手实践下你就知道了。

    新建一个批处理文件a.bat,在里面输入命令:

    @echo off

    net user

    if%ERRORLEVEL% == 0  goto successed

    if%ERRORLEVEL% == 1  goto failed

    :successed

    echo netuser 执行成功!

    gotoreturn

    :failed

    echo netuser 执行失败!

    :return

     

    set命令

     

    set命令我比较常用的是用来设置环境变量。它的用法很简单,例子如下:

    set hosts=c:/windows/system32/drivers/etc

    注意:set命令只能设置当前cmd下才有效的环境变量。

     

    参考文献:

     

    1.网上一位大侠(姓名不详)写的《批处理文件教程》

     


  • 相关阅读:
    Python3 之 列表推导式
    python3 之 趣味数学题(爱因斯坦)
    python3 之 判断闰年小实例
    python3 之 判断字符串是否只为数字(isdigit()方法、isnumeric()方法)
    116.Populating Next Right Pointers in Each Node
    115.Distinct Subsequences
    114.Flatten Binary Tree to Linked List
    113.Path Sum II
    112.Path Sum
    111.Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470882.html
Copyright © 2011-2022 走看看