В Linux это %llu
, и в Windows это %I64u
, Хотя я нашел, что это не работает в Windows 2000, там, кажется, существует ошибка!
я не смог, используют любой из вышеупомянутых ответов в моем варианте использования, таким образом, я использовал следующую команду, чтобы получить IP-адрес моего адаптера сети Ethernet и повторить его, как упомянуто в вышеупомянутом вопросе.
for /f "tokens=3 delims=: " %i in ('netsh interface ip show config name^="Ethernet" ^| findstr "IP Address"') do echo Your IP Address is: %i
, Большинство команд с помощью ipconfig
, например, просто распечатывает все IP-адреса, и мне был нужен определенный, который в моем случае был для моего адаптера сети Ethernet.
Вы видите свой список сетевых адаптеров при помощи эти netsh interface ipv4 show interfaces
команда. Большинству людей нужны Wi-Fi или Ethernet.
Вы будете видеть таблицу как так в выводе к командной строке:
Idx Met MTU State Name
--- ---------- ---------- ------------ ---------------------------
1 75 4294967295 connected Loopback Pseudo-Interface 1
15 25 1500 connected Ethernet
17 5000 1500 connected vEthernet (Default Switch)
32 15 1500 connected vEthernet (DockerNAT)
В столбце имени необходимо найти сетевой адаптер, который Вы хотите (т.е. Ethernet, Wi-Fi и т.д.).
, Как упомянуто, я интересовался Ethernet
в моем случае.
Для получения IP для того адаптера мы можем использовать команду netsh:
netsh interface ip show config name="Ethernet"
Это дает нам этот вывод:
Configuration for interface "Ethernet"
DHCP enabled: Yes
IP Address: 169.252.27.59
Subnet Prefix: 169.252.0.0/16 (mask 255.255.0.0)
InterfaceMetric: 25
DNS servers configured through DHCP: None
Register with which suffix: Primary only
WINS servers configured through DHCP: None
(я фальсифицировал фактический IP-адрес выше из соображений безопасности рџ ‰)
я могу далее указать, какую строку я хочу использовать эти findstr
команда в командной строке MS-DOS. Здесь я хочу строку, содержащую строку IP Address
.
netsh interface ip show config name="Ethernet" | findstr "IP Address"
Это дает следующий вывод:
IP Address: 169.252.27.59
я могу затем использовать эти for
команда, которая позволяет мне анализировать файлы (или многострочные строки в этом случае) и разделять содержание строк на основе разделителя и номера изделия, которым я интересуюсь.
Примечание, что я ищу третий объект (tokens=3) и что я использую пробел и :
как мои разделители (delims=:
).
for /f "tokens=3 delims=: " %i in ('netsh interface ip show config name^="Ethernet" ^| findstr "IP Address"') do echo Your IP Address is: %i
Каждое значение или маркер в цикле печатаются прочь как переменная %i, но я только интересуюсь третьим "маркером" или объектом (следовательно tokens=3
). Обратите внимание, что я должен был выйти |
и =
использование ^
В конце эти for
команда, которую можно указать команду для выполнения с содержанием, которое возвращается. В этом случае я использую echo
для распечатывания его с некоторым другим текстом, но Вы могли также присвоить значение переменной среды с [1 121], например, или что когда-либо Вы любите.
Крутой, ха?
, Если у Вас есть какие-либо идеи для улучшения, оставьте комментарий. Я хотел бы услышать его :) Или Вы могли просто отредактировать.