通过cmd获取网卡速率的代码
投稿:mdxy-dxy
今天从群里看到通过bat获取网卡速率两段代码,感觉还不错,学习bat的朋友可以参考一下
1、本机有线网卡支持的最高速度:%v%
@echo off & setlocal enabledelayedexpansion
echo 代码开始
echo 65001编码获取: > nul
chcp 65001 >nul
chcp 936 > nul
echo 936编码输出: > nul
@echo off &for /f "delims=" %%v in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}" /s ^|find /i "\*speedduplex" ') do set "kv=%%v"
echo,%kv% > nul
for /f "tokens=1-4 delims= " %%a in ('reg query "%kv%" ') do set "v=%%c %%d"
echo,
echo,
echo, 本机有线网卡支持的最高速度:%v%
echo,
echo,
pause >nul
exit
reg query "%kv%" /s >1.txt
start "" 1.txt
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}" /s >1.txt
start "" 1.txt >nul效果图

2、正在扫描有线网卡配置
@echo off & setlocal enabledelayedexpansion
echo 代码开始
cls
@echo off
Setlocal enabledelayedexpansion
net session >nul 2>&1 || (
echo 正在请求管理员权限...
echo CreateObject^("Shell.Application"^).ShellExecute "%~f0", "", "", "runas", 1 > "%temp%\getadmin.vbs"
cscript //b "%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs" >nul 2>&1
exit /b
)
echo 正在扫描有线网卡配置...
echo ========================================
for /f "delims=" %%v in ('
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}" /s ^|
findstr /i "\\\*SpeedDuplex\\enum" ^|
findstr /v "NdiExt"
') do (
set "enum_path=%%v"
set "adapter_path=!enum_path:\Ndi\Params\*SpeedDuplex\enum=!"
set "adapter_name="
for /f "tokens=2,*" %%A in ('
reg query "!adapter_path!" /v DriverDesc 2^>nul ^| find "REG_SZ"
') do (
set "adapter_name=%%B"
)
echo [网卡实例] !adapter_path:~-4! >nul
if defined adapter_name (
echo [网卡名称] !adapter_name!
) else (
echo [警告] 未找到网卡名称
)
echo [支持模式]:
for /f "tokens=2,*" %%a in ('
reg query "!enum_path!" ^| findstr /i "[0-9][0-9]* "
') do (
echo %%b
)
echo ========================================
)
pause
pause >nul
exit效果图如下

3、BAT 网卡抓取以及设置IP
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
::netsh interface ip set address "LAN" dhcp
::netsh interface ip set dns "LAN" dhcp
::netsh interface ip set address "LAN" static 192.168.1.175 255.255.255.0 192.168.1.1
::netsh interface ip set dns "LAN" static 192.168.1.1
::netsh interface show interface
@echo off & setlocal enabledelayedexpansion
echo. & echo 正在抓取网卡名称……
set m=0
for /f "tokens=1* delims=," %%a in ('Getmac /v /nh /fo csv') do (
set /a m+=1
set "name!m!=%%a"
set "name=%name:~1,-1%"
)
echo. & echo 1:!name1! & echo 2:!name2! & echo 3:!name3! & echo 4:!name4! & echo 5:!name5! & echo 6:!name6! & echo 7:!name7! & echo 8:!name8! & echo 9:!name9! & echo 10:!name10!
set /p "Select_Card=选择需要设置的网卡序号:"
echo.
if "%Select_Card%" == "1" ( set card=!name1! ) else (
if "%Select_Card%" == "2" ( set card=!name2! ) else (
if "%Select_Card%" == "3" ( set card=!name3! ) else (
if "%Select_Card%" == "4" ( set card=!name4! ) else (
if "%Select_Card%" == "5" ( set card=!name5! )
if "%Select_Card%" == "6" ( set card=!name6! )
if "%Select_Card%" == "7" ( set card=!name7! )
if "%Select_Card%" == "8" ( set card=!name8! )
if "%Select_Card%" == "9" ( set card=!name9! )
if "%Select_Card%" == "10" ( set card=!name10! ) else ( echo. & echo 未键入任何参数! & pause>nul & cls & goto :Select_Card )))))
rem echo. & echo 选择网卡:%card%
rem 强制获取管理员权限
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
rem ::设置变量
rem set NAME="以太网"
set NAME=%card%
echo 网络设置:
echo 1.设置静态IP
echo 2.设置动态IP
echo 3.退出
echo 4.获取网卡mac地址
set /p operate=
if %operate%==1 goto 1
if %operate%==2 goto 2
if %operate%==3 goto 3
if %operate%==4 goto 4
:1
echo 正在设置静态IP,请稍等...
rem ::可以根据你的需要更改
set /p ADDR=请输入IP地址:
set /p MASK=请输入子网掩码:
set /p GATEWAY=请输入网关:
netsh interface ipv4 set address %NAME% static %ADDR% %MASK% %GATEWAY%
set /p DNS1=请输入主DNS:
if "%DNS1%"=="" (echo DNS1为空) else netsh interface ipv4 set dns %NAME% static %DNS1% validate=no
set /p DNS2=请输入备用DNS:
if "%DNS2%"=="" (echo DNS2为空) else (netsh interface ipv4 add dns %NAME% %DNS2% validate=no)
echo **********已设置为静态IP***********
::%ADDR%
::%MASK%
::%GATEWAY%
::%DNS1%
::%DNS2%
pause
goto 3
:2
echo 正在设置动态IP,请稍等...
echo 正在从DHCP自动获取IP地址...
netsh interface ip set address %NAME% dhcp
echo 正在从DHCP自动获取DNS地址...
netsh interface ip set dns %NAME% dhcp
echo **********已设置为动态IP地址***********
pause
goto 3
:3
exit
:4
for /f "skip=1 tokens=1 delims= " %%a in ('getmac') do set mac=%%~a
::如果输出的mac地址要以空格为分割符的内容,请把%mac%换成%mac:-= %
(echo %mac%)>C:\Users\clay\Desktop\test
pause
效果图如下

此脚本可抓取本机的所有网卡信息,设置对应网卡的动态及静态IP地址
