2016-02-07 106 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)。你可能不想在屏幕上看到它。

||作品为 “如果以前的命令(查找)失败,则”(对面是&&