如何提取 PC 的 IP(仅限 Wifi 适配器)并通过批处理文件将其设置为变量?

How can I extract the IP (Wifi adapter only) of a PC and set it as a variable through a batch file?

我目前有这条简单的线,以便在控制台中写入 IP

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

然而,当我尝试将此信息输入文件时,它只会显示命令中显示的最后一个字符,即“:”,但我只需要将第一行提取到文本文件中%temp%\Test.txt所以我后来通过

把它保存到一个变量中
set /p IP=< %temp%\Test.txt

尝试使用 Type,但没有用,我目前被代码封锁,有什么想法吗?

解决方案不是我的,而是一个叫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 变量,因此您不必担心会截断字符串。

一起来看看吧

ping为运行时,括号内会显示IP。 使用 %ComputerName% ping 您自己的计算机将强制命令显示您自己的 IP。

最后,findstr 允许使用通配符的广泛选项允许我们收集括号之间的信息(还记得 [') 吗?),从而产生一个干净的变量,它只会显示你的IP。

但是,如果您通过 WiFi/LAN/USB/蜂窝网络或任何其他互联网功能连接,我不确定这将如何工作; Windows 如何使用多种连接方法处理 IPv4?我相信这不会有问题,但我想检查一下。