Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 获得多个NIC速度10/100/1000_Windows_Batch File_Scripting - Fatal编程技术网

Windows 获得多个NIC速度10/100/1000

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

我有下面的批处理文件,但是,如果您启用了多个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 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速度,否则您会一直覆盖可变速度吗?