::创建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
正文完