【问题标题】:Get Multiple NICs Speed 10/100/1000获得多个 NIC 速度 10/100/1000
【发布时间】:2013-10-25 17:48:29
【问题描述】:

我有以下批处理文件,但是,如果您启用了多个 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

另外,为什么在'=''|'之前没有'^',它在批处理文件执行中不起作用

【问题讨论】:

    标签: windows batch-file scripting


    【解决方案1】:
    @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 速度,否则您会不断覆盖可变速度?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多