Board logo

标题: [求助]关于if exist的问题! [打印本页]

作者: Chief     时间: 2007-3-12 12:36    标题: [求助]关于if exist的问题!

我的系统是XPSP2,在批处理中使用if exist这个命令的时候,如果文件不存在会不停弹出提示窗口“Windows 找不到指定文件……”,关都来不及!

命令内容:

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

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

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

  Quote:
批处理示例

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 ]
作者: wedd     时间: 2007-3-13 00:23
在if前面加一个@看看
作者: youxi01     时间: 2007-3-13 01:17
改成:
if exist “x:\xxx\xxx.exe” start “x:\xxx\xxx.exe”试试。
作者: oilio     时间: 2007-3-13 01:28
楼主的朋友这种用法肯定不对吧,start后面不能这样用,带双引号解释器会理解成是title
作者: wingy000     时间: 2007-3-13 01:44
我运行了下 好使  估计是你的机器毛病 呵呵
作者: Chief     时间: 2007-3-13 04:54
问题已解决,发现不是这一句的错误,而是上一句。

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

但奇怪的是系统提示的是找不到xxx.exe,而不是aaa.exe。并且单独运行上一句没有问题(aaa.exe也是不存在的文件)。