Windows批处理命令学习二

转载 2013年12月02日 09:24:40

批处理文件参数:

有点编程基础的人都知道函数有参数.批处理文件也有参数。批处理文件还可以像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.网上一位大侠(姓名不详)写的《批处理文件教程》

windows批处理命令大全

windows批处理(bat、cmd)命令大全
  • k1988
  • k1988
  • 2010年09月15日 12:48
  • 8790

windows bat批处理基础命令学习教程

windows bat批处理基础命令学习教程
  • huwei2003
  • huwei2003
  • 2017年03月27日 09:32
  • 2834

Windows批处理命令学习三

本文转自:批处理for命令详解(转)for命令      这是一个非常有用的命令。for命令其实就是一个循环命令,如果我们想重复一个语句,就可以用for命令.通过for命令,可以控制循环的次数等.FO...
  • clever101
  • clever101
  • 2012年02月09日 23:07
  • 3748

Windows批处理命令学习

Windows批处理命令学习一      Windows的批处理命令固然比不上unix的shell脚本强大,但用好了仍能给我们的工作带来很大作用。一个朋友问我为什么学习批处理命令,我以《程序员修炼之...
  • szu030606
  • szu030606
  • 2012年02月13日 15:27
  • 743

Windows批处理命令学习一

作者:朱金灿来源:http://blog.csdn.net/clever101        Windows的批处理命令固然比不上unix的shell脚本强大,但用好了仍能给我们的工作带来很大作用。一...
  • clever101
  • clever101
  • 2012年02月08日 23:00
  • 7964

Windows批处理(cmd/bat)常用命令

前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。编写批处理文件非常简单,但难点在于确保一切按顺...
  • hanzheng260561728
  • hanzheng260561728
  • 2016年06月01日 20:59
  • 29339

批处理命令学习笔记——If命令

If 命令 表示将判断是否符合规定的条件,从而决定执行不同的命令。有三种格式: 1、if [NOT]"参数" == "字符串"  待执行的命令 参数如果等于(或者不等于)指定的字符...
  • qq_33336155
  • qq_33336155
  • 2016年12月08日 13:33
  • 631

Mybatis学习总结二

1.传递pojo对象 Mybatis使用ognl表达式解析对象字段的值,如下例子: select * from user where id=#{id} and username lik...
  • u012730299
  • u012730299
  • 2016年05月20日 11:27
  • 428

maven实战学习(二)--------------maven安装和配置

1.Windows上安装maven 1.1检查JDK安装 Maven可以运行在JDK1.4及以上的版本。打开Windows命令行,运行如下命令来检查安装" 如果没有安装或者没有配置JAVA_...
  • happyAnger6
  • happyAnger6
  • 2015年07月16日 19:49
  • 1252

【转】Windows批处理学习(一)——MS-DOS命令

转自:http://akudy.blog.51cto.com/2277883/1212360 前记    自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知...
  • belber
  • belber
  • 2013年08月01日 12:41
  • 1020
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows批处理命令学习二
举报原因:
原因补充:

(最多只允许输入30个字)