获取多个NIC速度10/100/1000

时间:2013-10-25 17:48:29

标签: windows batch-file scripting

我有以下批处理文件,但是,如果您启用了多个NIC并且为其报告的第一个NIC吐出了Speed的输出,则它会变得很吓人,但是对于它,报告

Speed = Missing Operand

我该如何解决这个问题?

@echo off
for /f "tokens=2 delims==" %%a in ('wmic nic where NetEnabled^=true get speed /value ^| find /i "speed"') do set /a speed=%%a
set /a speed=((%speed%/1024)/1024)
echo Speed in megabytes: %speed% Mbps
pause

此外,为什么在'^''='

之前没有'|'的批处理文件执行中它不起作用

1 个答案:

答案 0 :(得分:0)

@ECHO OFF &SETLOCAL
for /f "tokens=2 delims==" %%a in ('wmic nic where NetEnabled^=true get speed /value ^| find /i "speed"') do set "speed=%%a"
set /a speed=speed/1048576 2>nul
if %speed% neq 0 (echo Speed in megabytes: %speed% Mbps) else echo No speed available.

无论是批处理还是cmd窗口,您都需要在for循环中转义=|。这是因为它在for循环中。