Заменить часть IP в пакетном скрипте - PullRequest
0 голосов
/ 20 сентября 2018

Я знаю, что есть похожая тема, но она не работает для меня.Моя проблема в том, что я хочу иметь возможность автоматически изменять мой IP-адрес

Так, например, у меня есть подсеть / 29 с 5 рабочими IP-адресами с первым используемым IP-адресом, скажем, будет 12.345.678.90 Я хотел бы сценарий, чтобы изменить этоip для 12.345.678.91 и для 12.345.678.92, поэтому разница между оригиналом составляет +1 и +2, и чем скрипт должен будет указывать эти IP-адреса в другом месте скрипта или файла txt.Моя проблема в том, что я понятия не имею, как заставить скрипт изменить эти IP для +1 и +2.Обратите внимание, что 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 голосов
/ 21 сентября 2018

разделите 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
...