バッチの新機能。問題をバッチ変数の評価方法に絞り込んだと思います。
setlocal enableextensions enabledelayedexpansion
set timelimit=30
for /F "USEBACKQ tokens=4,6,8" %%a in (`systeminfo ^| qgrep -e "System Up Time:"`) do set /A timepassed=%%a*24*60+%%b*60+%%c
IF "!timepassed!" LEQ "%timelimit%" (
echo %timelimit%
) ELSE (
echo !timepassed!
)
実行すると、バッチが !timepassed! を出力することを期待しています。(現在は 1250) ただし、常に %timelimit% (30) を出力するため、LEQ IF が使用されていると思われるため、意味がありません。