別のプロセスを開始する前に、さまざまな引数を受け取るバッチスクリプトを作成しています。以下の例では、最初の引数が1で、2番目の引数が「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を追加するための明白なセグウェイであり、これに私を導きました(私は「*」の有無にかかわらず試しました):
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を探しています。私は近くにいるとかなり確信していますが、正しい構文を理解するのに問題があります。