繁体   English   中英

批处理命令如何为set / p创建列表

[英]Batch command how to make a list for set /p

我正在尝试制作一个要求用户输入的批处理脚本。 用户输入应限于某些单词。 如果用户输入除例如(eng,ger,fra)之外的任何其他单词,则用户将得到类似“请输入语言”的回声。

我还想将用户输入存储为变量,以便在批处理文件中进一步使用。

到目前为止我所拥有的是:

: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

现在,我如何列出所有接受的单词并使这些单词成为输入中唯一可接受的单词?

单词列表很长,我可能不需要在这里包含它。

将列表放入文件并将输入与该文件进行比较:

: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)

为了创建文件,我将列表从这里复制到临时文件,并使用for /f "delims=- " %i in (ISO-list.txt) do @echo %i)>ISO6392.txt (一个for /f "delims=- " %i in (ISO-list.txt) do @echo %i)>ISO6392.txt提取代码 - 时间任务)

笔记:

我使用set /p "var=prompt: "语法来清楚地定义显示的内容(注意空格,这是提示的一部分)

>nul将命令输出重定向到NUL(必杀技)。 您可能不希望在屏幕上看到它。

|| 作为“如果上一个命令(查找)失败,然后”(相反将是&&

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM