批处理 - 检查变量是否包含数字、字母和连字符以外的字符
Batch - Check if variable contains characters other than numbers, letters and hyphens
我正在编写一个设置新计算机名称的脚本。语法是:
script.bat /NAME:<place new name here>
问题是,我不确定如何让我的脚本验证用户只输入了字母数字和连字符。所以,基本上,LENOVO-190
可以,但 LENOVO:~19|0)
不行。另外,我喜欢把所有小写字母都改成大写字母,只是为了美观(我觉得这样更好看)。
我只希望我的脚本接受 A
-Z
、0
-9
和 -
。如果输入了无效字符(比如 #
),它会说类似“hey! # is not allowed!
”
谢谢大家,干杯
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。
我正在编写一个设置新计算机名称的脚本。语法是:
script.bat /NAME:<place new name here>
问题是,我不确定如何让我的脚本验证用户只输入了字母数字和连字符。所以,基本上,LENOVO-190
可以,但 LENOVO:~19|0)
不行。另外,我喜欢把所有小写字母都改成大写字母,只是为了美观(我觉得这样更好看)。
我只希望我的脚本接受 A
-Z
、0
-9
和 -
。如果输入了无效字符(比如 #
),它会说类似“hey! # is not allowed!
”
谢谢大家,干杯
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。