高鸿业六版和五版区别:批处理 if详细用法

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 11:27:58
谁能给写批处理 if详细用法。

比如:
检测是否有F盘
如果有,就执行a.exe
如果没有,就执行b.exe

9.If 命令

if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:
1、if "参数" == "字符串" 待执行的命令
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
如if "%1"=="a" format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms

2、if (not) exist 文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如if exist config.sys edit config.sys

3、if errorlevel / if not errorlevel 数字 待执行的命令
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。
如if errorlevel 2 goto x2
DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。

对于你的例子,实现方法如下:

if exist F:\ (
start a.exe
) else (
start b.exe
)

if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:
1、if "参数" == "字符串" 待执行的命令
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
如if "%1"=="a" format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms

2、if (not) exist 文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如if exist config.sys edit config.sys

3、if errorlevel / if not errorlevel 数字 待执行的命令
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。
如if errorlevel 2 goto x2
DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。

语句如下:
if exist f:\nul a.exe
if not exist f:\nul b.exe

在传统的 DOS 环境中,if exist 只能用来测试文件是否存在,而不能测试目录或驱动器。由于 DOS 使用“虚拟设备”机制,我们可以用 if exist c:\dos\nul 来测试是否存在 c:\dos 这个目录。这是个变通的办法。

现在没这么麻烦了。我测试了几条语句:
C:\Documents and Settings\Administrator>if exist c:\nul echo ok
ok

C:\Documents and Settings\Administrator>if exist c:\ echo ok
ok

C:\Documents and Settings\Administrator>if exist c:\abc.txt echo ok

C:\Documents and Settings\Administrator>if exist c:\windows echo ok
ok

C:\Documents and Settings\Administrator>if exist c:\windows\*.bak echo ok
ok
这个在 Windows Server 2003 命令提示符下的测试结果表明:
系统仍然兼容老的虚拟设备路径;

if exist 可以直接测试文件、目录、驱动器是否存在

@echo off
if exist r:\ (echo 1) else (echo 2)
pause