Я собрал пакетный файл на основе информации, которую нашел здесь. Как ни странно, более ранняя версия, казалось, работала правильно дома, как только я взял ее на работу, она не работала. И все мои модификации не могут это исправить. Мой босс и я застряли.
@echo off
setlocal
for /f "usebackq tokens=2 delims=:" %%f in (`ipconfig ^| findstr /c:"IPv4 Address"`) do (
for /f "tokens=1-4 delims=. " %%a in ("%%f") do (
set octetA=%%a set octetB=%%b set octetC=%%c set octetD=%%d
if %octetB% equ 10 goto :setschool
)
)
:setschool
if %octetC% geq 0 if %octetC% leq 3 set school=DIC
if %octetC% geq 16 if %octetC% leq 19 set school=AT
if %octetC% geq 48 if %octetC% leq 51 set school=BE
if %octetC% geq 64 if %octetC% leq 67 set school=BH
if %octetC% geq 80 if %octetC% leq 83 set school=CN
if %octetC% geq 112 if %octetC% leq 115 set school=LC
if %octetC% geq 128 if %octetC% leq 131 set school=LX
if %octetC% geq 144 if %octetC% leq 147 set school=RG
if %octetC% geq 160 if %octetC% leq 163 set school=UN
if %octetC% geq 176 if %octetC% leq 179 set school=WA
if %octetC% geq 192 if %octetC% leq 195 set school=WI
if %octetC% geq 208 if %octetC% leq 211 set school=BOE
echo %school%
goto :eof
Он выдает ошибку при первом 'if', потому что для octetB еще ничего не установлено. И все же код перед тем, как он должен был его установить. Все наши проводные DHCP-адреса начинаются с 10.10. Именно поэтому он проверяет на 10, что должно означать, что он игнорирует наши беспроводные, автоматически настраиваемые IP-адреса и виртуальные сетевые адаптеры. Если я вручную запускаю строки перед «если», то получается то, что я ожидаю, с правильно установленными октетами.