假设这是Windows ipconfig
命令的输出。
c:\>ipconfig
Windows IP Configuration
Wireless LAN adapter Wireless Network Connection:
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 192.168.1.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
c:\>
在Linux操作系统中,我可以使用grep
和cut
命令轻松获取IP地址。
user@linux:~$ cat ip
c:\>ipconfig
Windows IP Configuration
Wireless LAN adapter Wireless Network Connection:
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 192.168.1.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
c:\>
user@linux:~$
user@linux:~$ cat ip | grep IPv
IPv4 Address. . . . . . . . . . . : 192.168.1.10
user@linux:~$
user@linux:~$ cat ip | grep IPv | cut -d ':' -f 2
192.168.1.10
user@linux:~$
但是,在Windows中,这是我使用findstr
命令可以获得的最佳效果。
有没有办法让cut
只输出这个输出的IP部分?
c:\>ipconfig | findstr IPv4
IPv4 Address. . . . . . . . . . . : 192.168.1.10
c:\>
我期待的是仅使用本机Windows命令
c:\>ipconfig | <some command here just to get an IP Address only>
192.168.1.10
c:\>
答案 0 :(得分:1)
您可以使用以下说明来实现目标:
for /f "tokens=2 delims=:" %i in ('ipconfig ^| findstr "IPv4" ^| findstr [0-9]') do echo %i
答案 1 :(得分:0)
如果我需要做这样的事情,我会使用GnuWin32 utilities。
cut
位于coreutils grep
是separate package 只需运行安装程序,即可开始使用。 (可能需要调整%PATH%
。)
我很确定你可以使用findstr和for loop tokenization来破解基于批处理文件的解决方案,但我不会打扰。
GnuWin32 utils提供zip binary download,所以你甚至不需要管理员权限来使用它们(只是能够在机器上获得exe)。
答案 2 :(得分:0)
您可以将ipconfig | cscript /Nologo script.js
与包含以下内容的文件script.js
一起使用
var lines = WScript.Stdin.ReadAll().split('\n');
for(var i = 0; i < lines.length; ++i) {
var line = lines[i];
if(line.match(/IPv4 Address/)) {
WScript.echo(line.replace(/ *IPv4 Address[ .]*: /, ''));
}
}
请注意,可能有多个网络适配器,导致打印多个IP。
答案 3 :(得分:0)
我无法使ipconfig命令按照我想要的方式工作,即隔离我所需的特定网络适配器的IP。
我需要“以太网”,但是您可以选择任何一个,例如“ Wi-Fi”。
要实现此目的,我改用netsh(注意:OP专门询问了ipconfig,但是实现了相同的结果,所以我想我会分享):
Container buildTextField(bool isObscure, TextEditingController textEditingController, String hintText, bool onlyNumber) {
return Container(
width: double.infinity,
height: 60,
color: MyColors.primary,
alignment: Alignment.center,
child: Padding(
padding: EdgeInsets.only(left: 15, right: 10),
child: TextFormField(
textAlign: TextAlign.center,
keyboardType: onlyNumber ? TextInputType.number : TextInputType.text,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
color: Colors.white,
fontWeight: FontWeight.w600,
),
border: InputBorder.none,
),
style: TextStyle(
color: Colors.white,
decoration: TextDecoration.none,
fontWeight: FontWeight.w600,
),
obscureText: isObscure,
controller: textEditingController,
),
),
);
}
有关其工作方式以及如何对其进行自定义的说明,请参见我的相关文章:https://stackoverflow.com/a/59004409/2684661