搜索了几天后,我得到的是如何检查变量是字母还是数字形式。有没有办法将这两种情况结合起来?
第一个条件:第一个字母必须是“D”
第二个条件:“D”必须是数字
变量示例:D123456789
感谢您查看,评论和回答。
答案 0 :(得分:1)
只要变量不包含任何" poison"以下内容就可以正常工作&
,|
等字符
echo(%var%|findstr /rx "D[0123456789]*" >nul && (
echo Valid
) || (
echo Invalid
)
如果你想防止毒药,那么
setlocal enableDelayedExpansion
echo(!var!|findstr /rx "D[0123456789]*" >nul && (
echo Valid
) || (
echo Invalid
)
如果您在"成功"中执行的最后一个命令('&&')部分可能会引发错误,然后必须清除ERRORLEVEL,否则"失败" (' ||')部分可能会在您不想要时触发。最简单,最快捷的方法是使用(call )
setlocal enableDelayedExpansion
echo(!var!|findstr /rx "D[0123456789]*" >nul && (
echo Valid
someCommandThatCouldRaiseAnError
(call )
) || (
echo Invalid
)
答案 1 :(得分:0)
这看起来像正则表达式的正确用例,例如/ ^ D [0-9] + /。
FindStr可能会帮助您在批处理脚本中执行Regexpes:您可以查看本手册: http://www.robvanderwoude.com/findstr.php