如何将CPU使用率值作为整数?

时间:2014-09-07 14:25:57

标签: batch-file command cpu-usage netsh

我运行了这个批处理文件:

:START
FOR /f "tokens=2 delims=," %%a in ('typeperf "\processor(_Total)\%% Processor Time" -SC 1 -y ^|find ":" ') DO
(set "var=%%~na"
IF var>=30
(netsh interface teredo set state disabled
netsh interface 6to4 set state disabled
netsh interface isatap set state disabled )
IF var<30
( netsh interface teredo set state client
netsh interface 6to4 set state enabled
netsh interface isatap set state enabled
) )
goto START

我希望此程序持续扫描CPU使用百分比,并将该值存储在整数&#39;

中。

现在如果CPU使用率超过30%,我想禁用IPv6。如果CPU使用率降至30%,我想启用IPv6。我写了上面的代码,但它没有用。你能说出问题出在哪里吗?

2 个答案:

答案 0 :(得分:0)

如果您的netsh命令正确,那么这可能对您有用:

@echo off
:START
FOR /f "tokens=2 delims=," %%a in ('typeperf "\processor(_Total)\%% Processor Time" -SC 1 -y ^|find ":" ') DO (
echo CPU is at %%a %%
   IF %%~na GTR 30 (
      echo disabling
      netsh interface teredo set state disabled
      netsh interface 6to4 set state disabled
      netsh interface isatap set state disabled 
   ) else (
      echo enabling
      netsh interface teredo set state client
      netsh interface 6to4 set state enabled
      netsh interface isatap set state enabled
   )
)
echo waiting
timeout /t 5 /nobreak >nul
goto :START

答案 1 :(得分:0)

还有一种方法 - 使用与counters相同的typeperf的LOGMAN。

使用这种方法,您不需要运行/循环批处理文件 - 在完成代码后,任务将以纯粹方式启动。

但是您需要创建另外两个.bat文件来启用和禁用IPv6(在此示例中为disable6.bat和enable6.bat)。或者至少有一个额外的bat接受参数并使用{ {1}} logman的密钥(LOGMAN和SCHTASKS都需要管理员权限):

-targ

同时检查NSPBIND工具以禁用IPv6。