2016-02-07 43 views
1

我正在嘗試創建一個請求用戶輸入的批處理腳本。 用戶輸入應限制在某些字詞上。如果用戶輸入除例如以外的任何其他詞語(eng,ger,fra),用戶將得到一個回聲,如「請輸入語言」。批處理命令如何爲列表設置/ p

我還希望將用戶輸入存儲爲批處理文件中進一步使用的變量。

我至今是:

:Get_ISOlanguage 
set "ISOlanguage=" 
set /p ISOlanguage=Enter subtitle language in ISO 639-2 standard abbreviation: 
if not defined ISOlanguage echo You must enter a value. Try again.&goto Get_ISOlanguage 

現在,我怎麼能列出所有接受的話,使這些字輸入唯一可以接受的話嗎?

單詞列表很長,我可能不需要在這裏包含它。

回答

3

獲取列表到一個文件中,並與該文件比較你的輸入:

:Get_ISOlanguage 
set "ISOlanguage=" 
set /p "ISOlanguage=Enter subtitle language in ISO 639-2 standard abbreviation: " 
find /i "%ISOlanguage%" ISO6392.txt >nul || (echo wrong input & goto :Get_ISOlanguage) 

要創建該文件,我複製列表從here到一個臨時文件中提取的代碼與for /f "delims=- " %i in (ISO-list.txt) do @echo %i)>ISO6392.txt(一次性-task)

注:

我用set /p "var=prompt: "語法的所顯示的內容明確的定義(注意空間,這是提示的一部分)

>nul將命令輸出重定向到NUL(涅ana)。你可能不想在屏幕上看到它。

||作品爲 「如果以前的命令(查找)失敗,則」(對面是&&