У меня есть следующий пакетный файл для проверки диапазона IP-адресов, на котором находится компьютер, чтобы решить, нужно ли запускать ABC.exe.
Это работает нормально, и поскольку первая часть всех 3 офисных местоположений имеет одинаковые номера в начале их диапазонов IP-адресов вплоть до первого номера третьего октета (10.41.1), я сейчас просто проверяю это.
@ECHO OFF
SET OFFICE_ALL=10.41.1
REM SET OFFICE_1=10.41.168.
REM SET OFFICE_2=10.41.162.
REM SET OFFICE_3=10.41.172.
REM SET VPN_CONNECTION=10.36.
ipconfig | find /i " %OFFICE_ALL%" >nul 2>nul && (
start C:\ABC-tool\ABC.exe
) || (
exit
)
Все это говорит о том, что мы собираемся переехать в другое место, и коллеги по сети сказали мне, что диапазон IP-адресов для нового офиса станет 10.44.121.x.
Я пытался настроить свой скрипт так:
@ECHO OFF
SET OFFICE_MOST=10.41.1
REM SET OFFICE_1=10.41.168.
REM SET OFFICE_3=10.41.172.
SET OFFICE_2=10.44.121.
REM SET VPN_CONNECTION=10.36.
ipconfig | find /i " %OFFICE_MOST%" >nul 2>nul && (
start C:\ABC-tool\ABC.exe
) || ipconfig | find /i " %OFFICE_2%" >nul 2>nul && (
start C:\ABC-tool\ABC.exe
) || (
exit
)
Но почему-то это не работает ... Мое понимание || заключается в том, что код после того, как он выполняется, только когда код до этого не был успешным, поэтому он в основном действует как конструкция if-else. Но, видимо, это еще не все, и я не могу понять это. Где и почему я ошибаюсь в своем скорректированном коде?