Windows 获得多个NIC速度10/100/1000
我有下面的批处理文件,但是,如果您启用了多个NIC,并且为它报告的第一个NIC输出速度,那么它会异常,但是对于更多的NIC,它会报告Windows 获得多个NIC速度10/100/1000,windows,batch-file,scripting,Windows,Batch File,Scripting,我有下面的批处理文件,但是,如果您启用了多个NIC,并且为它报告的第一个NIC输出速度,那么它会异常,但是对于更多的NIC,它会报告 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 spe
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
此外,为什么在批处理文件执行中,在'='
和'|'
之前没有'^'
@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循环中。如果您有多个NIC,这仍然不能提供正确的输出。想想这怎么可能?当然,您需要在一个循环中实际打印出每个NIC速度,否则您会一直覆盖可变速度吗?