快速设置window系统的ip段

18次阅读
没有评论
::创建2到253的数字.bat文件内容如下
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
title 静态IP设置工具 - %~n0
color 0a
cls

:: =================================
:: 1. 智能提取文件名中的数字
:: =================================
set "filename=%~n0"
set "ip_last=100"

echo 正在从文件名提取数字...
set "num_str="

:: 方法1:提取末尾连续数字(适用于108.bat这种纯数字文件名)
for /f "delims=" %%i in ("%filename%") do (
    set "str=%%i"
    set "num="
    for /l %%n in (0,1,20) do (
        set "char=!str:~%%n,1!"
        if "!char!" geq "0" if "!char!" leq "9" (
            set "num=!num!!char!"
        )
    )
    if defined num set "num_str=!num!"
)

:: 方法2:如果方法1失败,尝试提取所有数字
if not defined num_str (
    for /f "delims=0123456789 tokens=*" %%a in ("%filename%") do set "non_num=%%a"
    call set "num_str=%filename:%non_num%=%"
)

:: 验证数字
if defined num_str (
    set /a "ip_last=num_str" 2>nul
    if !ip_last! lss 1 (
        set "ip_last=100" 
        echo [警告] 数字小于1,使用默认值100
    ) else if !ip_last! gtr 254 (
        set "ip_last=100" 
        echo [警告] 数字大于254,使用默认值100
    ) else (
        echo [成功] 从文件名提取的数字: !ip_last!
    )
) else (
    echo [警告] 文件名未包含数字,使用默认值100
)

:: =================================
:: 2. 获取当前网络配置
:: =================================
set "subnet=192.168.1"
echo 正在检测网络配置...
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr "IPv4" ^| findstr /v "169.254"') do (
    for /f "tokens=1-3 delims=." %%b in ("%%a") do (
        set "subnet=%%b.%%c.%%d"
        goto :got_subnet
    )
)
:got_subnet

:: =================================
:: 3. 网络接口设置(直接使用以太网)
:: =================================
set "interface=以太网"

:: =================================
:: 4. 显示配置信息
:: =================================
echo.
echo =================================
echo  文件名  : %filename%.bat
echo  设置IP  : %subnet%.%ip_last%
echo  子网掩码: 255.255.255.0
echo  网关    : %subnet%.254
echo  接口    : %interface%
echo =================================
echo.

:: =================================
:: 5. 确认提示
:: =================================
choice /c yn /n /m "确认设置以上IP配置? (Y/N)"
if %errorlevel% neq 1 (
    echo 操作已取消
    pause
    exit /b
)

:: =================================
:: 6. 执行设置
:: =================================
echo 正在设置静态IP...
netsh interface ipv4 set address name="%interface%" static %subnet%.%ip_last% 255.255.255.0 %subnet%.254 >nul 2>&1

if %errorlevel% equ 0 (
    echo [成功] IP已设置为 %subnet%.%ip_last%
    echo 正在设置DNS服务器...
    netsh interface ipv4 set dns name="%interface%" static 8.8.8.8 >nul 2>&1
    netsh interface ipv4 add dns name="%interface%" 8.8.4.4 index=2 >nul 2>&1
    echo 所有设置已完成!
) else (
    echo [失败] 设置失败,请尝试以下操作:
    echo 1. 右键选择"以管理员身份运行"
    echo 2. 检查接口名称是否正确
    echo 3. 手动运行以下命令测试:
    echo netsh interface ipv4 set address name="以太网" static %subnet%.%ip_last% 255.255.255.0 %subnet%.254
)

pause
正文完
 
评论(没有评论)