批处理文件 - 如何检查变量是否指定了字母数字

时间:2014-03-31 08:08:38

标签: batch-file

搜索了几天后,我得到的是如何检查变量是字母还是数字形式。有没有办法将这两种情况结合起来?

第一个条件:第一个字母必须是“D”

第二个条件:“D”必须是数字

变量示例:D123456789

感谢您查看,评论和回答。

2 个答案:

答案 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