0

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

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

4

1 回答 1

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循环中。

于 2013-10-25T19:29:04.180 回答