批处理常用命令及用法大全(6)

2019-08-30 12:05

pause

第②种 @echo off

if exist test\\nul (echo test 是文件夹) else echo test 是文件 pause

4.判断变量是否已经定义,if defined 变量 command 语句

这是一个判断变量是否已被定义的语句,我们还是先看例子: 例8

@echo off

if defined a (echo 变量 a 已定义) else (echo 变量 a 没有被定义) pause

执行后显示:变量 a 没有被定义 例9

@echo off set a=

if defined a (echo 变量 a 已定义) else (echo 变量 a 没有被定义) pause

执行后显示:变量 a 没有被定义 注意:set a=这后面是没有空格的。 例10 @echo off set a=10

if defined a (echo 变量 a 已定义) else (echo 变量 a 没有被定义) pause

执行后显示:变量 a 已定义 看了上面三个例子,你应该发现点什么了吧?现在我们应该知道了:当变量不存在或是值为空时,变量则为未定义。

当我们用if defined 变量 command 语句判断变量是否被定义时,请注意 变量 为不使用引导符号%的变量名,不能用写为%变量%,否则出错。 大家来试一下下面的这两个例子, 例11 @echo off set var1=5

if defined var1 (echo 变量var1已定义) else (echo 变量var1没有被定义) set /p var2=请输入一个数字:

if defined %var2% (echo 变量var2已定义) else (echo 变量var2没有被定义) pause 例12 @echo off set var1=5

if defined var1 (echo 变量var1已定义) else (echo 变量var1没有被定义)

set /p var2=请输入一个数字:

if defined var2 (echo 变量var2已定义) else (echo 变量var2没有被定义) pause

注意例11和例12哦:一个是%var2%而另一个是var2

5.判断上个命令的反回值,if errorlevel 数值 command 语句

这个语句是用于判断上一个命令执行的返回值errorlevel,我们还是先来看看例子, 例13

@echo off net user

if %errorlevel% == 0 (echo net user 命令执行成功) else (echo net user 命令执行失败) Pause

注意:%errorlevel% 这是个系统变量,所以用两个%括起来,这里的==为两个连续的=。也许有些朋友说我上面的例子是不是写错了?按照语法应该写成“if errorlevel 0”才对的呀。如果你是这样用的话,那你就错了,还真不信呀?OK,我们来设计个实验看看: 例14

@echo off

set /p input=请输入任意一条命令:

if errorlevel 0 (echo %input% 命令执行成功) else (echo %input% 命令执行失败) pause

用这种语法,不管你前面的命令,是否执行成功,它都会认为命令成功了。何解?

if errorlevel 语句的特点:

当使用 if errorlevel 0 cmmand 句式时,它的含义是:如果返回的错误码值大于或等于0 的时候,将执行cmmand操作;

当使用 if %errorlevel%==0 cmmand 句式时,它含义是:如果返回的错误码值等于0 的时候,将执行cmmand操作。

一般上一条命令的执行结果返回的值只有两个,\成功\用0 表示 \失败\用 1 表示,实际上,errorlevel 返回值可以在0~255 之间,例如xcopy 默认的errorlevel 值就有5 个,分别表示5 种执行状态: 0复制文件成功 1 未找到复制文件

2 用户通过CTRL C 终止了xcopy操作 4 出现了初始化错误 5 出现了磁盘写入错误

对于if 条件语句,常用的也就上面那5条吧,下面我们来看一下它的两种格式: if条件语句的完整格式是:if 条件表达式 (语句1) else (语句2)

它的含义是:如果 条件表达式 成立,就执行 语句1,否则,将执行 语句2。else后的 语句2 也可以不用括号括起。

if条件语句的简单格式是:if 条件表达式 (语句)

它的含义是:如果 条件表达式 成立,将执行 语句,否则,什么都不做。条件表达式后的 语句 也可以不用括号括起。 例15

@echo off

if exist \pause

你也可以写成下面这样 例16

@echo off

if exist \pause

补充1:if not 语句

对于if 语句前面的5种基本语法,都可以加上not参数,如 1。if not \字符串1\字符串2\语句; 2。if not数值1 equ 数值2 command 语句; 3。If not exist filename command 语句; 4。if not defined 变量 command 语句; 5。if not errorlevel 数值 command 语句。

在if 条件表达式 (语句) 语句,如没有not参数,默认是判断条件成立时,执行语句;如有not参数,判断条件失败时,执行语句。 我们看一下下面的例子: 例17 @echo off

if exist \盘存在) else echo C盘不存在 pause

执行后显示:C盘存在 例18 @echo off

if not exist \盘存在) else echo C盘不存在 pause

执行后显示:C盘不存在

不会吧,例18中执行后显示:C盘不存在,这简值是在说瞎话了,那到底是什么回事呢?

if not exist \盘存在) else echo C盘不存在

此语句中文意思:如果不存在C:\\ 就执行显示C盘存在;否则<指的是存在C:\\>就执行显示C盘不存在。

注:if exist 意为如果存在,那么if not exist就是如果不存在。

你的C盘当然是实实在在存在的啦,根椐上面的中文分得知,那执行例18后就显示为:C盘不存在 通过分析例18,你应该明白if语句中not参数是怎么用了吧!

补充2:IF语句嵌套的写法

我们先来看看 例1

@echo off set a=55

if %a% geq 50 ( if %a% geq 80 ( if %a% geq 100 (

echo a大于等于100 ) else echo a小于100 ) else echo a小于80 ) else echo a小于50 pause

这是一种比较规范的写法,那这种写法是怎样写的呢?那我们一步步的来: 第一步:

if %a% geq 50 ( ) else echo a小于50

第二步:在第一步geq 50 后面的括号()里按两下回车,主要是空两行出来。 if %a% geq 50 (

if %a% geq 80 ( )else echo小于80 ) else echo a小于50

第三步:在第二步geq 80 后面的括号()里按两下回车,主要是空两行出来。 if %a% geq 50 ( if %a% geq 80 (

if %a% geq 100 ( ) else echo a小于100 )else echo小于80 ) else echo a小于50

第四步:在第三步geq 100 后面的括号()里按两下回车,主要是空两行出来。 if %a% geq 50 ( if %a% geq 80 ( if %a% geq 100 (

echo a大于等于100 ) else echo a小于100 )else echo小于80 ) else echo a小于50

上面的代码中,if %a% 和 )else 要适当的缩进,以达到写书清晰!

45.for

在批处理文件中:for %%I in (command1) do command2 in之后必须有空格,否则会出错。

1、for语句的形式变量I,可以换成26个字母中的任意一个,这些字母会区分大小写,也就是说,%%I和%%i会被认为不是同一个变量;形式变量I还可以换成其他的字符,但是,为了不与批处理中的%0~%9这10个形式变量发生冲突,请不要随意把%%I替换为%%0 ~%%9中的任意一个;

2、in和do之间的command1表示的字符串或变量可以是一个,也可以是多个,每一个字符串或变量,我们称之为一个元素,每个元素之间,用空格键、跳格键、逗号、分号或等号分隔;

3、for语句依次提取command1中的每一个元素,把它的值赋予形式变量I,带到do后的command2中参与命令的执行;并且每次只提取一个元素,然后执行一次do后的命令语句,而无论这个元素是否被带到command2中参与了command2的运行;当执行完一次do后的语句之后,再提取command1中的下一个元素,再执行一次command2,如此循环,直到command1中的所有元素都已经被提取完毕,该for语句才宣告执行结束; 例: [code1] @echo off

for %%I in (bbs.bathome.cn) do echo %%I pause

[code2] @echo off

set str=c d e f g h i j k l m n o p q r s t u v w x y z echo 当前硬盘的分区有:

for %%i in (%str%) do if exist %%i: echo %%i: pause

[code3] @echo off

for %%i in (*.txt) do echo \pause

for /f 的基本用法

在for /f语句中,这里的元素是指文件中的每一行,也就是说,for /f 语句是以行为单位处理文本文件的。 [code4] @echo off

for /f %%i in (test.txt) do echo %%i pause


批处理常用命令及用法大全(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:钻孔反循环灌注桩施工工艺

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: