[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 电脑多张网卡的的情况,批处理怎么进行循环修改多张网卡?

本帖最后由 licunwei 于 2024-1-14 20:39 编辑

本人小白,以下代码都是自己网上找的进行修改,单一网卡可以循环进行修改,但我的环境有4张网卡,我需要循环进行修改所有网卡,直到都能ping通远端ip,输入站代码的变量是有很多条的,这里我只写了一条,能理解就行。
echo off
setlocal enabledelayedexpansion
set /p zdm="请输入站代码:"
if /I %zdm%==111 set name=CZY-LKX-GZZ
for /f "tokens=2 delims=="  %%A in ('wmic nic where "NetEnabled='TRUE'" get NetConnectionID /value^|find "="') do (
set /a m+=1
set "winx!m!=%%A"
)

for /f "delims=:" %%i in ('findstr /n /b /e  ::::.*:::: "%~f0"') do (
    for /f "tokens=1,2,3,4,5,6,7" %%i in ('more /e +%%i "%~f0" ^| find /i "%name%"') do (
        set "name=%%i" & set "ip=%%j" & set "gateway=%%k" & set "mask=%%l"  & set "newnetwork name=%%m"  & set "yuanduan=%%n"
    )
)
set minvalue=1000
set maxvalue=4000

:A
if %minvalue% gtr %maxvalue% (
netsh interface ip set address %winx1% dhcp
exit
)

netsh interface ip set address %winx1% static %ip%  %mask% %gateway%
ping %yuanduan% -n 5 |findstr "TTL" >nul
if %errorlevel%==1 (
set /a "minvalue+=1000"
for /f "delims=:" %%i in ('findstr /n /b /e  ::::.*:::: "%~f0"') do (
    for /f "tokens=1,2,3,4,5,6,7" %%i in ('more /e +%%i "%~f0" ^| find /i "%minvalue%"') do (
        set "name=%%i" & set "ip=%%j" & set "gateway=%%k" & set "mask=%%l"  & set "newnetwork name=%%m" & set "yuanduan=%%n"  
    )
)
goto A
) else (netsh interface set interface name="%winx1%" newname="%newnetwork name%" >nul  && echo 网卡名称”%winx1%“修改为”%newnetwork name%“成功。 )

pause




::::ip信息表::::
名称                      ip                    网关                           掩码                         网卡名称        远端IP
CZY-LKX-GZZ        10.10.10.2          10.10.10.65               255.255.255.192                        A          10.10.10.20   
1000                        192.168.1.10        0.0.0.0                     255.255.255.0                        B          192.168.1.2
2000                        192.168.11.10        0.0.0.0                       255.255.255.0                        C          192.168.11.2
3000                        192.168.2.10        0.0.0.0                       255.255.255.0                        D          192.168.2.2

回复 19# newswan
我自己再研究研究,有大神指点更好。

TOP

回复 19# newswan
应该用脚本能够实现,目前已经能够单张网卡循环修改。

TOP

最终办法应该是,用一个路由器或者 dhcp 服务器,给内网自动分配ip

TOP

回复 17# licunwei


    具体写出来,对我来说也比较难,批处理不想用了,如果能用powershell,晚点试试 powershell

TOP

回复 16# newswan
大佬能否帮我看看需要怎么写脚本,才能完成循环修改。我小白,不懂。

TOP

流程应该是这样的
读入文件
ping 每一个远端 如果不通 记录网络  网卡 禁用
循环选不通的网卡,循环设置 ip,直到ping通

TOP

回复 14# newswan


    ) else (netsh interface set interface name="%winx1%" newname="%newnetwork name%" >nul  && echo 网卡名称”%winx1%“修改为”%newnetwork name%“成功。)
35行应该这样,后面忘记删了。

TOP

35行那里,( 没有匹配

TOP

回复 12# newswan


    ip信息表就是网卡配置信息,不配网关的地址是固定的,配网关的地址有100多个,通过手动输入电脑编号提取IP,掩码,网关等信息。

TOP

回复 11# licunwei


    ip信息表 就是 配置文件吗?

TOP

回复 10# czjt1234


    我是每日备份一次到本地磁盘,但现场人员有时候会替换网口,比如网络异常,他们自己会相互去替换,替换后不会还原,这样备份后的文件也就没多大意思。还有新装的问题。

TOP

你不能把所有mac和对应的ip存到一个文件里么

QQ 20147578

TOP

回复 8# czjt1234


    我现在就是备份,通过MAC来还原的,但如果硬盘损坏,没有备份文件,或者新装的情况下,还得手动配置。

TOP

是不是现在所有电脑都能正常运行?
那你可以 ipconfig/all 读取所有 mac 和对应的 ip 子网 网关 等等
保存到文本文件或批处理文件最下面几行
以后重装系统就好设置了

也就是说,你现在是根据计算机名来设置各网卡的ip的
我认为可以改成根据mac来设置各网卡的ip

QQ 20147578

TOP

返回列表