我正在编写一个批处理脚本,它在开始另一个进程之前接受各种参数。在下面的示例中,我正在检查第一个参数为 1,第二个参数的形式为“0-9 的任意数字,后跟字母 k、m 或 g”(我指定进程应以 10g = 10 Gb 内存开始的内存量)。
如果我只想要一个数字就足够了:
IF [%1] EQU [1] ECHO %2|findstr /r "[^0-9]" > nul
IF [%1] EQU [1] IF errorlevel 1 echo starting test number %1 with %2 of memory
我认为添加字母 k、m 或 g 的明显 segway 导致我这样做(我尝试过使用和不使用“*”):
IF [%1] EQU [1] ECHO %2|findstr /r "[^0-9]*[kmg]" > nul
IF [%1] EQU [1] IF errorlevel 1 echo starting test number %1 with %2 of memory
但是,我无法将任何字符串与此 FINDSTR 模式匹配。基本上我正在寻找一个匹配 [0-9][0-9]*[kmg] 的 FINDSTR。我相当肯定我很接近,但在制定正确的语法时遇到了麻烦。