批处理中的If语句问题

时间:2015-05-07 21:50:42

标签: windows batch-file

我正在尝试批量制作程序安装程序。它会将其他批处理文件安装到可移动媒体或本地硬盘驱动器上。我正在尝试制作一个IF语句,让用户决定在哪里安装它。第一步是使用硬盘还是外部存储器。当我选择硬盘驱动器时它工作正常,但当我选择外部存储器时,它会同时运行硬盘驱动器代码和外部存储器代码。这是我的代码:

@ECHO OFF

color 0a
TITLE Installer

ECHO Where would you like to install this?

ECHO.1) Hard Drive

ECHO.2) Removable Media

CHOICE /C:12 /N

IF ERRORLEVEL ==1 (

    ECHO Hard Drive

)
IF ERRORLEVEL ==2 (

    ECHO Removable Media

)

PAUSE

2 个答案:

答案 0 :(得分:1)

IF ERRORLEVEL ==1

ERRORLEVEL 永远不会等于1

你需要

IF %ERRORLEVEL%==1

IF ERRORLEVEL 1 

(其中后者表示“如果errorlevel为1或大于1)

答案 1 :(得分:0)

来自official documentation(强调我的):

  

errorlevel number:仅在前一个条件下指定true条件   由Cmd.exe运行的程序返回退出代码等于或大于   比数