`
nanjingjiangbiao_T
  • 浏览: 2603681 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

批处理之IF语句

 
阅读更多

在批处理程序中执行条件处理。如果 if 命令中指定的条件为真,Windows 将执行该条件后的命令。如果条件为假,Windows 将忽略 if 子句中的命令,并执行 else 子句中的任何命令(如果已经指定了命令)。

if [not] errorlevel number command [else expression]

if [not] string1==string2 command [else expression]

if [not] exist filename command [else expression]

启用了命令扩展:

if [/i] string1 compare-op string2 command [else expression]

if cmdextversion number command [else expression]

if defined variable command [else expression]

参数

not

指定只有当条件为假时 Windows 才能执行该命令。

errorlevel number

只有当前一个程序返回大于或等于 number 的退出代码时,才能指定真条件。

command

指定在符合前面的条件时 Windows 将执行的命令。

string1==string2

只有当 string1string2 相同时才能指定真条件。这些值可以是文字字符串或批处理变量(例如,%1)。文字字符串不需要引号。

exist filename

如果 filename 存在,则指定真条件。

compare-op

以下三字母比较操作符中的一个:

操作符 说明 EQU 等于 NEQ 不等于 LSS 少于 LEQ 少于或等于 GTR 大于 GEQ 大于或等于

/i

指定 /i 开关时,将强制字符串比较按忽略大小写情况进行。/i 开关也可以用于 ifstring1==string2 格式。这些比较是通用的,如果 string1string2 都由所有的数字组成,那么字符串将被转换为数字并且将执行数字比较。

cmdextversion number

cmdextversion 条件的作用就像是 errorlevel,但它需要与 Cmd.exe 的“命令扩展”功能相关联的内部版本号比较。第一版是 1,当重大的增强添加到命令扩展中时,版本号将增加 1。当禁用命令扩展时,cmdextversion 条件不会为真。

defined variable

defined 条件的作用就象是 exist,但它使用环境变量名,并且如果环境变量已经定义它将返回真值。使用该条件添加三个变量:%errorlevel%, %cmdcmdline%%cmdextversion%

%errorlevel% 扩展到 errorlevel 当前值的字符串表达式,如果没有名为 ERRORLEVEL 的环境变量,在这种情况下可取代它的值。程序运行后,下面的图解 errorlevel 使用:

goto answer%erorlevel% :answer0 echo Program had return code 0 :answer1 echo Program had return code 1

也可以在 compare-op 中使用上面列出的比较操作符:

if %errorlevel% LEQ 1 goto okay

%cmdcmdline% 在任何 Cmd.exe 处理之前扩展传递到 Cmd.exe 的源命令行,如果没有名为 cmdcmdline 的环境变量,在这种情况下可取代它的值。

%cmdextversion% 扩展到 cmdextversion 当前值的字符串表达式,如果没有名为 CMDEXTVERSION 的环境变量,在这种情况下可取代它的值。

expression

else 子句中,expression 由 Windows 命令和任何传递到命令的参数组成。

附加一个实例,都是转的……谢谢作者

1。判断目录或文件的存在,来从服务器同步文件到本地

如D:\pubclt 目录被客人删除。可以用这种办法解决(注:我的服务器为fyt200)

@echo off

if exist tmp.txt del /q tmp.txt

for /f %%i in ('dir /a /b D:\pubclt\pubwin.exe') do echo %%i>>tmp.txt

if exist tmp.txt (goto 11) else (goto 12)

if exist tmp.txt del /q tmp.txt

:11

@echo -----------------------------

@echo 客户端无需更新.

@echo -----------------------------

goto q

:12

xcopy \\fyt200\share\pubclt d:\pubclt\ /s /f /y /q & \\fyt200\share\soft\control\pubwin.exe

d:\pubclt\pubwin.exe

@echo -----------------------------

@echo ....客户端更新完毕...........

@echo -----------------------------

:q

exit

这个批处理的意思是查找d盘中pubclt目录下的pubwin.exe文件,如果查找存在,则goto 11,如不存在则 goto12 其实这种办法可以用if exist 和if not exist命令实现,但是本人觉得这个会更好用一些。处理面也会广很多。

2。对比服务器的某个目录,删除多余的目录和文件。(注:我的服务器为fyt200)

@echo -----------------------------

@echo .同步更新磁盘D中所有和文件夹.

@echo -----------------------------

@echo .

cd /d d:

for /f "usebackq delims=" %%A in (`dir /a /b`) do (attrib "%%A" -r -h -s)

for /d %%A in ("d:\*") do if not exist "\\fyt200\share\%%~nA" rd /s /q "%%A"

for %%A in ("d:\*") do if not exist "\\fyt200\share\%%~nA" del /f /q "%%A"

这个大家一定要设置好来,比如你常用的d盘目录, netgame langame program files bak 下载区 等这些目录一定要在服务器上有,否则会无情的被删除。要是整个网吧都被删除了,呵呵不要怪我,dos下删除文件的速度是惊人的快的。。大家一定要先修改好自己的服务器路径。

3。隐藏d盘根目录中的所有文件和文件夹

cd /d d:

for /f "usebackq delims=" %%A in (`dir /a /b`) do (attrib "%%A" -r +h -s)

这个懂点批处理的人可能都懂,不多解释

4。在批处理中使用密码。当然只是简单的批处理,没有办法使用星号密码,技术还没有到那个地步。呵呵。。

@echo off

set num=0

:11

set /p pass=请输入密码:

if "%pass%"=="admin" goto next1

set /a num=%num% + 1

if %num%==3 goto no1

goto 11

:no1

%windir%\system32\rundll32.exe user32.dll,LockWorkStation

goto 11

:next1

pause

这个批处理的意思是:先设置num为0。密码为admin 输入正确,跳转到next1 ,若密码输入错误一次,则num加1,若3此输入密码错误则锁屏。。

另:批处理做好后,最好是使用QUICKbat等软件把文件属性改为幽灵文件。然后编译为EXE文件。或者用vbs文件后台执行,vbs这个网上都很流行。如:

DIM objShell

set objShell=wscript.createObject("wscript.shell")

iReturn=objShell.Run("cmd.exe /C\\192.168.0.200\share\soft\control\client.bat", 0, TRUE)

分享到:
评论

相关推荐

    bat批处理脚本.docx

    批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分...

    批处理命令教学之if语句

    主要介绍了Windows批处理命令中IF的使用方法,推荐给大家,有需要的小伙伴可以参考下。

    经典批处理编程简明教程

    其 次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来 循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来...

    如何编写批处理文件批处理文件批处理文件

    用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,...

    手把手教你写批处理asd

    其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是...

    批处理入门手册chm修正版

    资源名称:批处理入门手册 chm 修正版内容简介: 一 .批处理常用 DOS 命令篇1. 1 echo rem cd dir 命令1. 2 attrib del copy xcopy1.... 1 if条件语句3. 2 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    bat.rar_bat_edit命令_notepad_批处理

    其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来...

    bat编程_批处理

    bat编程_批处理 包含 echo for in loop end loop netsh ping tracert netstat natstat 等

    windows批处理-基础-循环判断语句使用

    //判断文件存在 @echo off if exist "d:\dd.txt" ( del "d:\dd.txt" echo 文件已被删除 )else ( echo 您要删除的文件不存在 ) pause

    BAT编写详细手册(批处理)

    其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是...

    批处理高级应用.doc

    二、if…else…条件语句 三、循环语句 四、子程序 五、用ftp命令实现自动下载 六、用7-ZIP实现命令行压缩和解压功能 七、调用VBScript程序 八、将批处理转化为可执行文件 九、时间延迟 十、模拟进度条 ...

    超强批处理教程.rar

    第一章 批处理基础 第一节 常用批处理内部命令简介 ... 14、20080327修改了“if增强用法”中的defined语句说明 15、20080402增加变量嵌套与命令嵌套,重要技巧之一。 不断学习中,不断更新中。

    DOS批处理高级教程精选合编.pdf

    DOS批处理高级教程精选合编.pdf 有详细的书签。for语句详解 if语句详解 set语句详解 变量拓展

    Windows 批处理调试器3.0

    只可以在批处理语句开头行之前加断点,不可以在批处理语句的续行加断点,不可以在空行、标签行和右括号)开头的行加断点,不可以在非批处理代码处【比如内嵌perl代码】加断点; 虽然程序做了初步的检查以防止你的疏忽...

    bat文件中常用的命令以及怎么使用

     其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来...

    基础批处理编译器(精简版)

    可以编译一些小的批处理,因为是精简版,功能不是很多,用pascal编写,不可以使用if for set 语句,开头也不可以加@echo off等,而且在末尾要加上exit,但功能虽小,贵在精简,文件十分小,方便携带,使用后会在同一...

    经典 批处理 BAT 教程

    第一章 批处理基础 第一节 常用批处理内部命令简介 1、REM 和 :: ...14、20080327修改了“if增强用法”中的defined语句说明 15、20080402增加变量嵌套与命令嵌套,重要技巧之一。 不断学习中,不断更新中。

    dos批处理教程(实用)

    14、20080327 修改了“if 增强用法”中的defined 语句说明 15、20080402 增加变量嵌套与命令嵌套,重要技巧之一。 正文: 第一章批处理基础 第一节常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一...

    DOS批处理高级教程精选

    二、if…else…条件语句 三、循环语句 四、子程序 五、用ftp命令实现自动下载 六、用7-ZIP实现命令行压缩和解压功能 七、调用VBScript程序 八、将批处理转化为可执行文件 九、时间延迟 1、利用ping命令延时 2、利用...

    DOS批处理高级教程精选合编

    二、if…else…条件语句 三、循环语句 四、子程序 五、用ftp命令实现自动下载 六、用7-ZIP实现命令行压缩和解压功能 七、调用VBScript程序 八、将批处理转化为可执行文件 九、时间延迟 1、利用ping命令延时...

Global site tag (gtag.js) - Google Analytics