标题: [网络连接] (已解决)我这个批处理是改网关的,但是碰到网卡名字改变的情况下改不了 [打印本页]
作者: conan2095 时间: 2023-12-29 22:04 标题: (已解决)我这个批处理是改网关的,但是碰到网卡名字改变的情况下改不了
本帖最后由 conan2095 于 2023-12-29 22:45 编辑
- @echo off
- setlocal enabledelayedexpansion
-
- REM 读取本机网关
- for /f "tokens=3" %%a in ('"route print 0.0.0.0|findstr 0.0.0.0"') do (
- set gateway=%%a
- )
-
- echo 当前网关为:%gateway%
-
- echo 输入数字1和2来选择网关,选1网关改成1,选2网关改成200 输入Q 退出
-
- set /p "n=请输入选项: "
-
- if /i "%n%"=="q" exit
- if %n% equ 1 goto 1
- if %n% equ 2 goto 2
-
- echo 无效的选项,请重新输入。
- pause
- exit /b
-
- :1
- netsh interface IP Set Addr "网络 2" Static 192.168.33.33 255.255.255.0 192.168.33.1 gwmetric=1
- echo 网关已设置为 192.168.33.1
- exit /b
-
- :2
- netsh interface IP Set Addr "网络 2" Static 192.168.33.33 255.255.255.0 192.168.33.200 gwmetric=1
- echo 网关已设置为 192.168.33.200
- exit /b
复制代码
但是如果网卡名字是其他名字就改不了,能不能帮我写一个获取网卡名字的代码插进去,然后网卡名字用变量代替,要考虑到网卡名字有空格的情况
作者: conan2095 时间: 2023-12-29 22:44
我在AI 上找到答案了 谢谢大家- @echo off
- setlocal enabledelayedexpansion
-
- REM 读取本机网关
- for /f "tokens=3" %%a in ('"route print 0.0.0.0|findstr 0.0.0.0"') do (
- set gateway=%%a
- )
-
- echo 当前网关为:%gateway%
-
- REM 获取网卡名称
- for /f "delims=" %%a in ('netsh interface show interface^|more +3') do (
- set "str=%%a"
- for /f "tokens=*" %%b in ("!str:~46!") do set interfaceName=%%b
- )
-
- echo 网卡名称为: %interfaceName%
-
- echo 输入数字1和2来选择网关,选1网关改成1,选2网关改成200 输入Q 退出
-
- set /p "n=请输入选项: "
-
- if /i "%n%"=="q" exit
- if %n% equ 1 goto 1
- if %n% equ 2 goto 2
-
- echo 无效的选项,请重新输入。
- pause
- exit /b
-
- :1
- netsh interface IP Set Addr "%interfaceName%" Static 192.168.33.33 255.255.255.0 192.168.33.1 gwmetric=1
- echo 网关已设置为 192.168.33.1
- exit /b
-
- :2
- netsh interface IP Set Addr "%interfaceName%" Static 192.168.33.33 255.255.255.0 192.168.33.200 gwmetric=1
- echo 网关已设置为 192.168.33.200
- exit /b
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |