我正在制作一个小批量脚本,其中包含一个类似于下面代码块的部分......如果说这让我感到困惑,我的思绪已经完全麻木,那将是轻描淡写的......为什么在gaias绿色背面这不起作用......?
@echo off
set log=0
choice /m "Choose "
if errorlevel 2 set log=N
if errorlevel 1 set log=Y
echo %log%
pause
if "%log%"=="N" (
echo hello
)
if "%log%"=="Y" (
echo goodbye
)
pause
答案 0 :(得分:1)
Windows(和旧的DOS)中的一个奇怪的是,如果你设置“if errorlevel ...”它实际上意味着“如果错误级别大于这个数字......”所以如果你说“if errorlevel 1”你表示“if errorlevel> 1”。
试试这个:
if errorlevel 1 if not errorlevel 2 (do stuff)
if errorlevel 2 if not errorlevel 3 (do other stuff)
或者,您可以使用临时变量%ERRORLEVEL%...
答案 1 :(得分:0)
if errorlevel 2 set log=N
if errorlevel 1 set log=Y
翻译:
如果errorlevel为2或大于2,则设置log = N
如果errorlevel为1或大于1 set log = Y
所以 - 反转这些行,因为如果errorlevel为2,则它都是2 or greater than 2
(所以设置为N
)然后是1 or greater than 1
(所以设置为Y
)