Я пишу пакетный скрипт, который переключается между IP-адресами в зависимости от ввода пользователя.
Основные функции скрипта работают, однако я хочу добавить несколько проверок в каждую функцию, чтобы проверить, какие настройки уже применены, и дать соответствующий ответ.
Мой текущий код:
@ECHO OFF
::Change Static IP address for simulator or network connection
:MAINMENU choose option from menu
::Set Current IP Address
for /F "tokens=2 delims=:" %%i in ('"ipconfig | findstr IP | findstr 192."') do SET LOCAL_IP=%%i
ECHO.
ECHO. Set Workstation...........1
ECHO. Set Simulator.............2
ECHO. Quit (no further action)..Q
ECHO.
choice /c:Q21
ECHO.
IF ERRORLEVEL 3 GOTO WORK
IF ERRORLEVEL 2 GOTO SIM
IF ERRORLEVEL 1 GOTO EOF
::Change IP To network settings
:WORK
IF "LOCAL_IP"=="192.168.1.4" (
ECHO. You are already in this mode
GOTO MAINMENU
) ELSE
(echo "Setting Static IP Information"
netsh int ip set address name="Local Area Connection" source=static addr=192.168.1.4 mask=255.255.255.0 gateway=192.168.1.254 gwmetric=1
netsh int ip set dns name="Local Area Connection" source=static addr=192.168.1.1
echo IP Address Set
goto MAINMENU)
::Set Simulator IP Address
:SIM
IF "LOCAL_IP"=="192.168.4.1" (
ECHO. You are already in this mode
GOTO MAINMENU
) ELSE
echo "Setting Static IP Information"
netsh int ip set address name="Local Area Connection" source=dhcp
netsh int ip set dns name="Local Area Connection" source=dhcp
netsh int ip set address name="Local Area Connection" source=static addr=192.168.4.1 mask=255.255.255.0
echo "Setting Static IP Information"
goto MAINMENU
:EOF
pause
У меня проблемы с получением инструкции IF для сравнения текущего IP-адреса с тем, на который я хочу установить его.
Кто-нибудь может подсказать, где я иду не так, или предложить какие-нибудь идеи, чтобы заставить это работать, пожалуйста?