DOS/BAT

关注公众号 jb51net

关闭
首页 > 脚本专栏 > DOS/BAT > dos获取网卡速率

通过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地址

您可能感兴趣的文章:
阅读全文