我批量生成关机计时器,并在使用户友好的同时出错

时间:2017-02-14 02:39:23

标签: batch-file

当我没有为第一个选项输入任何内容时,由于用户可能会意外,程序崩溃并显示错误消息:

  

goto此时出乎意料。

@echo off
title Shutdown Timer
color 7c
echo.
echo SHUTDOWN TIMER 1.0
echo.
:start
echo Shutdown in?           
echo 1h, 2h, 3h, 4h, 5h, 6h, 7h, 8h, 9h, 10h,
set /p hour=
if %hour% == 1h goto onehour
if %hour% == 2h goto twohour
if %hour% == 3h goto threehour
if %hour% == 4h goto fourhour
if %hour% == 5h goto fivehour
if %hour% == 6h goto sixhour
if %hour% == 7h goto sevenhour
if %hour% == 8h goto eighthour
if %hour% == 9h goto ninehour
if %hour% == 10h goto tenhour
cls
echo.
echo SHUTDOWN TIMER 1.0
echo.
echo.
echo Please enter a valid option.
echo.
goto start
:onehour

是否有一种方法可以在没有输入任何内容时启动用户,或者针对此问题进行其他修复?例如,if %hour% == "nothing" goto start

在此图像中,您可以看到带有回声的错误。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

哦,伙计,你如此接近

为防止用户输入任何输入时出现错误,只需在您要比较的两个内加上引号。

if "%hour%" == "1h" goto onehour
if "%hour%" == "2h" goto twohour
if "%hour%" == "3h" goto threehour
if "%hour%" == "4h" goto fourhour
if "%hour%" == "5h" goto fivehour
if "%hour%" == "6h" goto sixhour
if "%hour%" == "7h" goto sevenhour
if "%hour%" == "8h" goto eighthour
if "%hour%" == "9h" goto ninehour
if "%hour%" == "10h" goto tenhour

这样,当用户不输入任何内容时,if语句仍会在双方都有一些内容,以防止语法错误。

if "" == "1h" goto onehour