楼 主
請指教那裡出了問題,急用謝謝
发表于 2007-04-08 01:57 · 中国 江苏 苏州 联通
初级用户
★
积分 98
发帖 34
注册 2007-03-09 08:18
19年会员
UID 81178
性别 男
状态 离线
if exist d:\1.bat goto d else goto end
:d
d:
:end
exit
我的本意是如果D盤存在1.bat就進入D盤,如果不存在就退出。但是我執行的結果卻是無論有沒有1.bat都是直接退出,請問高手這個批出理錯在哪裡,如果想實現我上述的結果應該怎樣改,謝謝
第 2 楼
发表于 2007-04-08 02:06 · 中国 北京 鹏博士BGP
中级用户
★★
积分 404
发帖 179
注册 2006-03-30 14:44
20年会员
UID 53056
状态 离线
批处理是顺序执行的
所以 在执行完存在的情况下 仍然执行了 exit语句
if exist d:\1.bat goto d else goto end
:d
d:
echo file exist & pause >nul
:end
exit
对比一下 实际上它正确执行了 只是你不知道而已
if exist d:\1.bat (goto d) else (goto end)
:d
d:
echo file exist & pause >nul
:end
echo file not exist & pause >nul
exit
[
Last edited by kcdsw on 2007-4-8 at 02:33 AM ]
第 3 楼
发表于 2007-04-08 02:25 · 中国 四川 遂宁 电信
中级用户
★★
积分 278
发帖 103
注册 2006-10-21 21:08
19年会员
UID 67562
性别 男
状态 离线
楼上的 文件存不存在都会显示存在,不对吧?
应该这样改就符合楼主的意思了:
@echo off
if exist d:\1.bat goto d else goto end
:end
@echo file not exist & pause >nul
exit
:d
d:
echo file exist
cmd
[ Last edited by zzhh612 on 2007-4-8 at 02:47 AM ]
第 4 楼
发表于 2007-04-08 02:29 · 中国 广东 广州 天河区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
if exist "d:\1.bat" (goto d) else goto end
:d
d:
pause
exit
:end
pause
exit
还有一个是括号问题,在if /?里面可以看到原因:ELSE 命令必须与 IF 命令的尾端在同一行上
第 5 楼
发表于 2007-04-08 03:32 · 中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
19年会员
UID 80606
性别 男
状态 离线
if exist "d:\1.bat" (goto d
) else (goto end
)
:: IF 与 ELSE 不能在同一行中出现
第 6 楼
发表于 2007-04-08 06:06 · 中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by zhoushijay at 2007-4-7 14:32:
if exist "d:\1.bat" (goto d
) else (goto end
)
:: IF 与 ELSE 不能在同一行中出现
谁说IF 与 ELSE 不能在同一行中出现?
只不过 ELSE 前面的命令要
(...)起来
@echo off
:loop
cls
set a=
set /p a=
if "%a%" == "1" (echo Yes) else echo No
pause
goto loop
按LZ的要求改一下,没有 d:\1.bat 直接跳到:end
if not exist d:\1.bat goto end
d:
exit
:end
exit
[
Last edited by zh159 on 2007-4-7 at 05:11 PM ]
第 7 楼
发表于 2007-04-08 06:07 · 中国 广东 广州 荔湾区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
19年会员
UID 82819
性别 男
状态 离线
if exist d:\1.bat goto d else goto end
:d
exporer d:
:end
exit
知,不觉多。不知,乃求知
论坛跳转: