Я делаю сценарий для развлечения, который идентифицирует все компьютеры в сети. Часть, с которой я сталкиваюсь, - это получение соответствующих IP-адресов локальных компьютеров из таблицы ARP.
Есть функция, которая должна позволять мне обрезать результаты и сравнивать их с подсетью, чтобы увидеть, является ли адрес релевантным, но когда я пытаюсь обработать переменные, он ничего не назначает ни одной из переменных и действует так, как будто все переменные пустой.
Ниже приведена усеченная версия скрипта:
SET SUB="192.168.10"
SET count=1
FOR /F "tokens=* USEBACKQ" %%F IN (`arp -a`) DO (
SET Foo=%%F
SET Faa=%Foo%
SET Foo=%Foo:~0,15%
SET Faa=%Faa:~0,11%
IF /I "!Faa!"=="%SUB%" ECHO %Foo% >> comp_list.txt
SET /a count=!count!+1
)
Вывод последней строки цикла в cmd выглядит следующим образом:
C:\_Scripts\>(
SET Foo=255.255.255.255 ff-ff-ff-ff-ff-ff static
SET Faa=""
SET Foo=""
SET Faa=""
IF !Faa! == "" ECHO %Foo% >> comp_list.txt
SET /a count=!count!+1
)