Как я могу извлечь IP (только адаптер Wi-Fi) из ПК и установить его в качестве переменной через командный файл? - PullRequest
0 голосов
/ 25 октября 2018

В настоящее время у меня есть эта простая строка для записи IP в консоли.

for /f "tokens=14 skip=34 delims= " %%a in ('ipconfig') do (echo %%a)

Тем не менее, когда я пытаюсь ввести эту информацию в файл, он просто отображает последний символ, показанный накоманда, которая является ":", но мне нужно извлечь только первую строку в текстовый файл %temp%\Test.txt, чтобы потом я сохранил ее в переменную через

set /p IP=< %temp%\Test.txt

Пробовал с Type, но не сделалне работает, я сейчас заблокирован, есть идеи?

1 Ответ

0 голосов
/ 29 октября 2018

Решение не мое, а блогер по имени Fabio Iotti.Престижность ему.

for /f "delims=[] tokens=2" %%a in ('ping -4 -n 1 %ComputerName% ^| findstr [') do set NetworkIP=%%a
echo Your IPv4 is: %NetworkIP%

Что мне понравилось для этого решения, помимо того, что это умный способ получить его, так это то, что оно выведет чистую переменную IP, так что вам не придется беспокоиться о перехватеstring.

Давайте посмотрим на это.

Когда будет запущен ping, IP будет показан в скобках.Пинг вашего собственного компьютера с помощью %ComputerName% заставит команду показать ваш собственный IP.

Наконец, широкие опции, которые findstr позволяет использовать с подстановочными знаками, позволяют нам собирать информацию в скобках (помните[')?), что приводит к чистой переменной, которая будет показывать только ваш IP.

Однако я не уверен, как это будет работать, если вы подключены через WiFi / LAN / USB / Cellular или любой другойинтернет-возможности;Как Windows обрабатывает IPv4 несколькими способами подключения?Я уверен, что это не будет проблемой, но я хотел бы проверить это.

...