下面有两个bat,我要实现的操作是:用户选择1或2时都会弹出提示询问y/n?当输入y时才执行相应操作,奇怪的现象是bat1执行时,第一次运行时,选择操作后,输入y都不会执行相应操作,返回到主菜单,第二次输入时就可以正确获取到用户的输入。
bat2的写法就没有此现象,为什么呢?试了好久搞不懂,bat1中把用户输入的变量显示出来发现为空
bat1内容:
@echo off
:main
echo.
echo 请选择操作:
echo.
echo 1、捕获整个硬盘镜像(C、D、E盘)
echo.
echo 2、还原整个硬盘镜像(C、D、E盘)
echo.
echo 3、退出
echo.
set /p op=请输入操作编号,按回车执行:
if %op%==1 (
set /p answer=此操作会格式化整个硬盘是否继续,y/n?:
if "%answer%"=="y" (
echo -----------------------------------------------
echo 执行捕获整个硬盘镜像(C、D、E盘),请耐心等待
echo -----------------------------开始时间:%time%---
call U:\CaptureImages.bat
echo -----------------------------------------------
echo 捕获整个硬盘镜像(C、D、E盘)-完成时间:%time%--
echo -----------------------------------------------
)
goto main
)
if %op%==2 (
set /p yn=此操作会格式化整个硬盘是否继续,y/n?:
if "%yn%"=="y" (
echo -----------------------------------------------
echo 还原整个硬盘镜像(C、D、E盘),请耐心等待
echo -----------------------------开始时间:%time%---
call U:\ApplyImages.bat
echo -----------------------------------------------
echo 还原整个硬盘镜像(C、D、E盘)-完成时间:%time%--
echo -----------------------------------------------
)
goto main
)
if %op%==3 (
exit
)
if "%op%"=="command" (
goto EOF
)
goto main
:EOF
bat2内容:
@echo off
:main
echo.
echo 请选择操作:
echo.
echo 1、捕获整个硬盘镜像(C、D、E盘)
echo.
echo 2、还原整个硬盘镜像(C、D、E盘)
echo.
echo 3、退出
echo.
set /p op=请输入操作编号,按回车执行:
if "%op%"=="1" goto op1
if "%op%"=="2" goto op2
if "%op%"=="3" goto op3
if "%op%"=="command" goto other
goto main
:op1
set /p YesNoIn=此操作覆盖原有的镜像备份,是否继续,y/n?:
if "%YesNoIn%"=="y" (
echo -----------------------------------------------
echo 执行捕获整个硬盘镜像(C、D、E盘),请耐心等待
echo -----------------------------开始时间:%time%---
call U:\CaptureImages.bat
echo -----------------------------------------------
echo 捕获整个硬盘镜像(C、D、E盘)-完成时间:%time%--
echo -----------------------------------------------
)
goto main
:op2
set /p yn=此操作会格式化整个硬盘,原有数据会丢失,是否继续,y/n?:
if "%yn%"=="y" (
echo -----------------------------------------------
echo 还原整个硬盘镜像(C、D、E盘),请耐心等待
echo -----------------------------开始时间:%time%---
call U:\ApplyImages.bat
echo -----------------------------------------------
echo 还原整个硬盘镜像(C、D、E盘)-完成时间:%time%--
echo -----------------------------------------------
)
goto main
:op3
exit
:other