1

我正在编写一个设置新计算机名称的脚本。语法是:

script.bat /NAME:<place new name here>

问题是,我不确定如何让我的脚本验证用户只输入了字母数字和连字符。所以,基本上,LENOVO-190是好的,但LENOVO:~19|0)不是。此外,我喜欢将所有小写字母更改为大写字母,只是为了美观(我认为它看起来更好)。

我只希望我的脚本接受A- Z0-9-. 如果输入了无效字符(比如说#),它会说类似“ hey! # is not allowed!

谢谢大家,干杯。

4

1 回答 1

3

现代版本的 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!

至于如何在纯批处理中将小写字母替换为大写字母,是有办法的

于 2017-11-21T20:29:02.970 回答