我正在编写一个设置新计算机名称的脚本。语法是:
script.bat /NAME:<place new name here>
问题是,我不知道如何让我的脚本验证用户只输入字母数字和连字符。所以,基本上,LENOVO-190
是可以的,但LENOVO:~19|0)
不是。此外,id喜欢它将所有小写字母更改为大写字母,仅用于aestetic效果(我觉得它看起来更好)。
我只希望我的脚本接受A
- Z
,0
- 9
和-
。如果输入了无效字符(比如#
),它会说“hey! # is not allowed!
”
答案 0 :(得分:1)
Windows的现代版本有findstr
,有点像grep
,因为它可以查找正则表达式的匹配项。您可以使用它来检查输入名称是否符合您的期望。例如:
C> echo abcde| findstr /r /i ^^[a-z][a-z0-9-]*$ && echo Good name! || echo Only letters, digits and hyphens, please!
abcde
Good name!
C> echo ab#de| findstr /r /i ^^[a-z][a-z0-9-]*$ && echo Good name! || echo Only letters, digits and hyphens, please!
Only letters, digits and hyphens, please!
关于如何用纯粹的管道中的大写字母替换小写字母,there are ways。