Board logo

标题: 关于if嵌套的问题 [打印本页]

作者: greenworld     时间: 2007-12-9 23:19    标题: 关于if嵌套的问题

@ECHO OFF
:ST
SET SD=
SET OTS=
set /P SD=     请输入你需要测试的系统所在的分区(C/D/E/F...) :
echo.
if not exist %SD%:\WINDOWS\system32\svchost.exe (
set /p OTS=     你选择的分区可能不正确,请按任意键继续,按 R 返回,按 Z 退出......:
if /i "%OTS%"=="R" goto :ST
if /i "%OTS%"=="Z" goto exit) ELSE (ECHO OK)
PAUSE

按 R,Z后,没有返回或退出,而是继续执行一下的命令了,望高手可以为偶分析一下这是怎么回事吗??正确的应该怎么写??
作者: Climbing     时间: 2007-12-10 09:01
貌似属于延迟环境变量的问题。
@ECHO OFF & setlocal ENABLEDELAYEDEXPANSION
:ST
SET SD=
SET OTS=
set /P SD=     请输入你需要测试的系统所在的分区(C/D/E/F...) :
echo.
if not exist %SD%:\WINDOWS\system32\svchost.exe (
set /p OTS=     你选择的分区可能不正确,请按任意键继续,按 R 返回,按 Z 退出......:
if /i "!OTS!"=="R" goto :ST
if /i "!OTS!"=="Z" goto :_exit) ELSE (ECHO OK)
PAUSE
:_exit