在批处理脚本中替换部分IP

时间:2018-09-20 16:33:35

标签: batch-file ip-address subnet

我知道有一个类似的话题,但是对我来说不起作用。我的问题是希望能够自动更改我的IP地址

因此,例如,我的子网/ 29具有5个工作ip,并且第一个可用的ip可以说是12.345.678.90。我希望脚本将该ip更改为12.345.678.91和12.345.678.92,因此原来的区别是+1和+2而不是脚本必须将这些IP指向脚本或txt文件上的不同位置。我的问题是我不知道如何使脚本更改+1和+2的IP。请注意,我每次粘贴的IP都会不同。希望我能清楚地解释我的需求。

到目前为止,我有这样的想法:

set /p WAN1=">>"
set /p WAN2=">>"
set /p WAN3=">>"
set /p WAN4=">>"

set /a WAN5=%WAN4%+1
set /a WAN6=%WAN4%+2

但是我宁愿粘贴整个IP地址,而不是键入每个模块。

谢谢您的所有帮助。

1 个答案:

答案 0 :(得分:0)

分割IP,在最后一个数字后加一个,然后重新组装:

@echo off
setlocal EnableDelayedExpansion

set /p "wlan4=WLAN4: "
for /f "tokens=1-4 delims=." %%a in ("%wlan4%") do (
  set /a last=%%d+1
  echo %%a.%%b.%%c.!last!
)

,或者如果您不希望使用延迟扩展,则:

@echo off
setlocal 
set /p "wlan4=WLAN4: "
for /f "tokens=1-4 delims=." %%a in ("%wlan4%") do (
  set /a last=%%d
  set "base=%%a.%%b.%%c"
)
set /a w5=last+1
set /a w6=last+2
set "wlan5=%base%.%w5%"
set "wlan6=%base%.%w6%"
set wlan