SET "MYVAR="
for /f "tokens=2" %%i in ('ping -n 1 -a 192.168.178.1') do if not defined MYVAR SET "MYVAR=%%i"
Приведенное выше решение должно работать для IP-адресов из следующих блоков IP-адресов ( диапазон частных IP-адресов ):
10.0.0.0
до 10.255.255.255
172.16.0.0
до 172.31.255.255
192.168.0.0
до 192.168.255.255
Редактировать . Возвращает PCNAME.home
.. есть ли способ для результата быть просто PCNAME
без ".home
" в конце?
В следующем фрагменте кода рассматривается даже тот случай, когда ping /a
не разрешает IP-адрес по имени хоста по некоторым причинам.
SET "MYIP=192.168.178.1"
SET "MYVAR="
for /f "tokens=2" %%i in ('ping -n 1 -a %MYIP%') do if not defined MYVAR SET "MYVAR=%%i"
if NOT "%MYIP%"=="%MYVAR%" for /f "delims=." %%i in ("%MYVAR%") do SET "MYVAR=%%i"