中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-24 18:47
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,274 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]关于if exist的问题!
可打印版本  1,305 / 5
第1楼 Chief 发表于 2007-03-12 12:36
新手上路 发帖 7 积分 16
[求助]关于if exist的问题!
我的系统是XPSP2,在批处理中使用if exist这个命令的时候,如果文件不存在会不停弹出提示窗口“Windows 找不到指定文件……”,关都来不及!

命令内容:

if exist x:\xxx\xxx.exe start x:\xxx\xxx.exe

初学批处理,请高手指点!

PS:下面是我在本站某教材中看到的资料。

批处理示例

1. IF-EXIST

1) 首先用记事本在C:\建立一个test1.bat批处理文件,文件内容如下:
@echo off
IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT
IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist

然后运行它:
C:\>TEST1.BAT

如果C:\存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。

2) 接着再建立一个test2.bat文件,内容如下:
@ECHO OFF
IF EXIST \%1 TYPE \%1
IF NOT EXIST \%1 ECHO \%1 does not exist

执行:
C:\>TEST2 AUTOEXEC.BAT
该命令运行结果同上。

说明:
(1) IF EXIST 是用来测试文件是否存在的,格式为
IF EXIST 命令
(2) test2.bat文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1~%9(%0表示test2命令本身) ,这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。


[ Last edited by Chief on 2007-3-12 at 12:12 AM ]
第2楼 wedd 发表于 2007-03-13 00:23
初级用户 发帖 16 积分 36
在if前面加一个@看看
第3楼 youxi01 发表于 2007-03-13 01:17
高级用户 发帖 247 积分 846 来自 湖南==》广东
改成:
if exist “x:\xxx\xxx.exe” start “x:\xxx\xxx.exe”试试。
第4楼 oilio 发表于 2007-03-13 01:28
高级用户 发帖 303 积分 641
楼主的朋友这种用法肯定不对吧,start后面不能这样用,带双引号解释器会理解成是title
第5楼 wingy000 发表于 2007-03-13 01:44
新手上路 发帖 6 积分 16
我运行了下 好使 估计是你的机器毛病 呵呵
第6楼 Chief 发表于 2007-03-13 04:54
新手上路 发帖 7 积分 16
问题已解决,发现不是这一句的错误,而是上一句。

start aaa.exe
if exist x:\xxx\xxx.exe start x:\xxx\xxx.exe

但奇怪的是系统提示的是找不到xxx.exe,而不是aaa.exe。并且单独运行上一句没有问题(aaa.exe也是不存在的文件)。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023