批处理文件中的通配符

3
我在想如何在批处理文件中检查通配符。
SET /p project=Enter project (XYZ_2016_123)

我需要检查变量project的格式是否为XYZ_20??_123,其中“??”是两个数字。忽略输入中的XYZ和123部分。目前,我有很多if语句来检查年份。但我想知道是否可以使用通配符来完成?
s=%project%
if not x%s:XYZ_2016_123=%==x%s% GOTO MAIN
if not x%s:XYZ_2017_123=%==x%s% GOTO MAIN
if not x%s:XYZ_2018_123=%==x%s% GOTO MAIN
:: etc.
1个回答

4

尝试这样做:

echo %s%|findstr /r "XYZ_20[0-9][0-9]_123" >nul 2>nul && (
  GOTO MAIN
)

FINDSTR


你可以在批处理文件中使用正则表达式吗? - Mr Mystery Guest
@MrMysteryGuest - 是的,对于匹配你可以使用findstr命令。 - npocmaka
太棒了!谢谢你,npocmaka! - Mr Mystery Guest
但是findstr的正则表达式功能相对较为有限。请参阅“帮助findstr”或ss64.com - user6811411

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接