Вы пытались установить переменную 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 секунд и сравним две переменные в цикле.
@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
)