bat批处理 if 命令示例详解

bat批处理 if 命令示例详解,第1张

if 命令示例详解 if 正如它E文中的意思 就是 如果 的意思 用来进态塌敬行条件判断 翻译过来的意思就是 如果符合某一条件 便执行后面的命令 主要用来判断 两个 字符串 是否相等 两个数值是大于 小于 等于 然后执行相应的命令 当然还有特殊用法 如结合errorlevel if errorlevel   echo error 或者结合defined(定义的意思):if defined test (echo It is defined) else echo It isn t defined 用法示例 检测字符串(注意 用if检测字符串是否相等的时候 后面用的不是 = 而是 == )

复制代码 代码如下:

@echo off set  str=this is a test REM 检测变量%str%是否等于test 如果相等 显示OK 否则显示NO if  %str% == test  (echo OK) else echo NO pause>nul

检测数值 (注意 批处理中大于符号不能用 >而用 gtr 其它的也类似) 比较运算符一览 EQU   等于 NEQ   不等于 LSS   小于 LEQ   小于或等于 GTR   大于 GEQ   大于或等于 检测数值   是否大于  演示代码

复制代码 代码如下:

@echo off set /a num = set /a num = if %num % gtr %num % echo %num %大于%num % if %num % EQU %num % echo %num %等于%num % if %num % LSS %num % echo %num %小于%num % pause>nul

if结合errorlevel使用 说明 环境变量errorlevel的初始值为 当一些命令执行不成功 就会返回一个数值 如    等 IF ERRORLEVEL  测试代码

复制代码 代码如下:

@ECHO OFF  XCOPY F:\test bat D:\  IF ERRORLEVEL   ECHO 文件拷贝失败  IF ERRORLEVEL   ECHO 成功拷贝文件 

如果文件拷贝成功 屏幕就会显示 成功拷贝文件 否则就会显示 文件拷贝失败   IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的 注意只是上一个命令的返回值 而且返回值必须依照从大到小次序顺序判断   因此下面的批处理文件是错误的   @ECHO OFF  XCOPY C:\AUTOEXEC BAT D:\  IF ERRORLEVEL   ECHO 成功拷贝文件  IF ERRORLEVEL   ECHO 未找到拷贝文件  IF ERRORLEVEL   ECHO 用户通过ctrl c中止拷贝 *** 作  IF ERRORLEVEL   ECHO 预置错误阻止文件拷贝 *** 作  IF ERRORLEVEL   ECHO 拷贝过程中写盘错误  无论拷贝是否成功 后面的   未找到拷贝文件  用户通过ctrl c中止帆慎拷贝 *** 作  预置错误阻止文件拷贝 *** 作  拷贝过程中写盘错误  都将显示出来

复制代码 代码如下:

附录 以下就是几个常用命令的返回值及其代表的意义   backup   备份成功   未找到备份文件   文件共享冲突阻止备份完成   用户用ctrl c中止备份   由于致命的错误使衫祥备份 *** 作中止  diskp   盘比较相同   盘比较不同   用户通过ctrl c中止比较 *** 作   由于致命的错误使比较 *** 作中止   预置错误中止比较  diskcopy   盘拷贝 *** 作成功   非致命盘读/写错   用户通过ctrl c结束拷贝 *** 作   因致命的处理错误使盘拷贝中止   预置错误阻止拷贝 *** 作  format   格式化成功   用户通过ctrl c中止格式化处理   因致命的处理错误使格式化中止   在提示 proceed with format(y/n)? 下用户键入n结束  xcopy   成功拷贝文件   未找到拷贝文件   用户通过ctrl c中止拷贝 *** 作   预置错误阻止文件拷贝 *** 作   拷贝过程中写盘错误 

if还有一个特殊的用法就是可以用来检测某个变量是否已经被定义 用法示例

复制代码 代码如下:

待续 lishixinzhi/Article/program/qrs/201405/31032

::══代══码══开══始═══

@echo off

title 窗口模式设置

color 1c

set/p mode=是否选念仔用最大窗口模式(Y/N)?:

if /i %mode%==Y (goto max) else goto min

:max

start /max set.bat

exit

:min

start set.bat

exit

::══代══码══结══束═══

::加上括号才可以,另外加上/i参数忽略大小写

复制隐仔哪汪藏文件要加/h这缓闷个参数,在xcopy的帮助里面有介绍,用copy实现不了。

例如:

xcopy /h c:\boot.ini d:\

使用BAT命令判断文件是否存在。

范例:

@echooff

ifnotexistc:\Temp\1.txtgotonofile   --1

gotostart           禅裂          渗袭如          --2

:nofile

copy \\xp\temp\111.txt c:\temp\1.txt     --3

:start

mstsc.exe                                --4

注释:

1:此处的意思是判断如果不存在C:\TEMP\1.TXT则跳转至自定义的NOFILE的脚本,如果存在刚跳过。执行下一步。

2:执行自定义START脚本。

3:此处为丛启执行第一句判断的后续内容,(复制网络路径\\SERVER\TEMP\111.TXT到当前机器中的C:\TEMP目录中并改名为1.txt。

4:执行MSTSC.exe程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8210238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存