如何从批处理输出中检查内存是否大于一定数量?

时间:2019-03-28 15:27:04

标签: regex batch-file

我有一个批处理文件,该文件正在从远程服务器提取信息并显示有关我的一项服务的信息。

我正在使用的批次如下:

tasklist /s TESTING1 /u TESTSvc /p T$ST1ng /fi "services eq test"

运行批处理时,我可以获取信息,但是需要创建一个Regex,它可以让我知道内存是否大于一定数量。我是Regex的新手,需要弄清楚该如何写。

批处理结果如下:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
tomcat9.exe                   5628 Services                   0  1,455,204 K

我看过Regex for number check below a valueRegex for dollar amount greater than $500Extracting string from logs with regex in pig script

我尝试了每种方法的推荐答案,但没有得到所需的结果。

该服务的内存可能会超过显示的内存。如果它高于1.8gb,则服务开始无法正确响应。

2 个答案:

答案 0 :(得分:3)

要匹配1,800,000999,999,999之间的任何数字,后跟一个空格字符和字母K,您可以使用:

\b(?:1,[89]|(?:[2-9]|[1-9]\d{1,2}),\d)\d\d,\d{3} K

演示:https://regex101.com/r/H3qaB4/1

故障:

\b              # Word boundary.
(?:             # Start of a non-capturing group.
    1,          # Matches `1,` literally.
    [89]        # Matches 8 or 9 literally.
    |           # Alternation (OR).
    (?:         # Start of 2nd non-capturing group.
        [2-9]   # Matches any digit between 2 and 9.
        |       # OR..
        [1-9]   # A digit between 1 and 9.
        \d{1,2} # Followed by one or two digits.
    )           # End of 2nd non-capturing group.
    ,           # Matches `,` literally.
    \d          # Matches one digit.
)               # End of 1st non-capturing group.
\d\d            # Matches two digits.
,               # Matches `,` literally.
\d{3}           # Matches 3 digits.

K               # Matches `K` literally.

要使下界1,200,000而不是1,800,000,只需将[89]部分替换为[2-9]

\b(?:1,[2-9]|(?:[2-9]|[1-9]\d{1,2}),\d)\d\d,\d{3} K

演示:https://regex101.com/r/H3qaB4/2

答案 1 :(得分:1)

一种获得1.8 G-999.9 T的方法
就像这样:

[ ](1,[89]\d{2},\d{3}|[2-9],\d{3},\d{3}|[1-9]\d{1,2},\d{3},\d{3}|[1-9]\d{0,2},\d{3},\d{3},\d{3})[ ]K$

扩展

 [ ] 
 (                                        # (1 start)
      1, [89] \d{2} , \d{3}                    # 1.8 G - 1.99 G
   |  
      [2-9] , \d{3} , \d{3}                    # 2.0 G - 9.9 G
   |  
      [1-9] \d{1,2} , \d{3} , \d{3}            # 10.0 G - 999.9 G
   |  
      [1-9] \d{0,2} , \d{3} , \d{3} , \d{3}    # 1.0 T  - 999.9 T
 )                                        # (1 end)
 [ ] 
 K
 $