2015-11-05 36 views
0

我一直都在做一個批處理文件來執行程序如何返回如果輸入不等於;批處理文件

@echo off 
:top 
set /p choice=" My Choice = " 
if %choice%=="install program.alpha" goto alpha 
if %choice%=="install program.beta" goto beta 
:alpha 
start="Destination...." 
goto top 
:beta 
start="Destination...." 
goto top 

所以我的問題是。我不能創建一個條件,當用戶輸入錯誤的命令,所以它必須返回一個錯誤。比如用戶輸入的命令:

install program.gamma 

install program.alhfdzbd or something else that not matches the custom commands 

我能做些什麼???

+0

你也應該知道,'choice'不*不*改變其值時,用戶只需按下_ENTER_,所以也許你想清除變量,比如'設置選擇='(把它'之間:頂部'和'set/p')... – aschipfl

回答

0

如果用戶既不輸入install program.alpha也不輸入install program.beta,只要將輸入視爲無效。

@echo off 
:top 
set /p choice=" My Choice = " 
if "%choice%"=="install program.alpha" goto alpha 
if "%choice%"=="install program.beta" goto beta 

:: If you get here, the user has typed something wrong. 
echo Invalid selection. Exiting. 
exit /b 

:alpha 
set start="Destination...." 
goto top 
:beta 
set start="Destination...." 
goto top 
+0

謝謝你,這是非常有益的人,你做了我的一天。非常感謝。併爲此感到遺憾。我只是一個初學者,你可能會想到這個級別的狗屎 – Precious

+0

Nah,不好的東西只是獲得更好的東西的第一步。 – SomethingDark

+0

你知道我已經在這個設置上工作了好幾個星期了,現在已經很完美了。意味着它就像Cortana一樣,現在所有必須做的就是「安裝軟件包」,即使是其他用戶(不知道自定義命令)是否可以安裝任何軟件,因爲我在每一個命令中都努力工作。 – Precious