标题: 請指教那裡出了問題,急用謝謝
[打印本页]
作者: w909525
时间: 2007-4-8 01:57
标题: 請指教那裡出了問題,急用謝謝
if exist d:\1.bat goto d else goto end
:d
d:
:end
exit
我的本意是如果D盤存在1.bat就進入D盤,如果不存在就退出。但是我執行的結果卻是無論有沒有1.bat都是直接退出,請問高手這個批出理錯在哪裡,如果想實現我上述的結果應該怎樣改,謝謝
作者: kcdsw
时间: 2007-4-8 02:06
批处理是顺序执行的
所以 在执行完存在的情况下 仍然执行了 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 ]
作者: zzhh612
时间: 2007-4-8 02:25
楼上的 文件存不存在都会显示存在,不对吧?
应该这样改就符合楼主的意思了:
@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 ]
作者: dikex
时间: 2007-4-8 02:29
if exist "d:\1.bat" (goto d) else goto end
:d
d:
pause
exit
:end
pause
exit
还有一个是括号问题,在if /?里面可以看到原因:ELSE 命令必须与 IF 命令的尾端在同一行上
作者: zhoushijay
时间: 2007-4-8 03:32
if exist "d:\1.bat" (goto d
) else (goto end
)
:: IF 与 ELSE 不能在同一行中出现
作者: zh159
时间: 2007-4-8 06:06
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 ]
作者: flyinspace
时间: 2007-4-8 06:07
if exist d:\1.bat goto d else goto end
:d
exporer d:
:end
exit