我有以下批处理文件,但是,如果您启用了多个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
此外,为什么在'^'
和'='
'|'
的批处理文件执行中它不起作用
答案 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循环中。