首页 > 解决方案 > 计数 tasklist ruby​​ 进程并在批处理脚本中说明计数是否已更改(或小于另一个数字)

问题描述

我想计算每 30 秒运行一次的 ruby​​ 进程,如果计数发生变化,请用“哦,不!”提醒我。最好。感谢大家!

但我什至不能让它工作......不等于50

FOR /F "delims=" %%G IN ('tasklist ^|find /I /C "ruby.exe"')do set count=%%G

IF "%%G"=="50" ECHO OH NO!

timeout /t 10

标签: batch-file

解决方案


您尝试设置 count 变量,但尽管它仍然是错误的,但您从未尝试使用它,所以让我们正确设置它并实际使用 count:

for /f "tokens=1,*" %%a in ('tasklist ^| find /I /C "ruby.exe"') do set count=%%a
if "%count%" equ "50" echo Oh No.
timeout /t 10

为了匹配前面的变量,我们只需保存变量 1,30 秒后再次运行检查,并在循环中比较 2 个变量。

@echo off
:start
set count=
set count2=
for /f "tokens=1,*" %%a in ('tasklist ^| find /I /C "ruby.exe"') do set count=%%a
timeout /t 30
for /f "tokens=1,*" %%i in ('tasklist ^| find /I /C "ruby.exe"') do set count2=%%i
if "%count%" equ "%count2%" (
  cls
  echo Count the same
  goto :start
   ) else (
   cls
   echo Current count %count2% has changed from %count%
   pause
)

推荐阅读