我想从命令的输出中只打印出某一行。
让我们以ipconfig
命令为例。这会返回很多行。
Windows IP Configuration
Wireless LAN adapter Wireless Network Connection:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : ab80::456d:123e:5ae5:9ab6%15
IPv4 Address. . . . . . . . . . . : 192.168.1.33
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
Ethernet adapter Local Area Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
我想打印说第11行。
我尝试了以下
FOR /F "skip=10 delims=" %G IN ('IPCONFIG') DO @ECHO %G
仅跳过前10行并打印其余行。
Default Gateway . . . . . . . . . : 192.168.1.1
Ethernet adapter Local Area Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
如何打印仅第11行?
答案 0 :(得分:4)
离开循环
FOR /F "skip=10 delims=" %G IN ('IPCONFIG') DO @ECHO %G & goto done
:done
已编辑从单个命令行获取命令输出中的第11行
for /f "tokens=1,* delims=:" %a in ('ipconfig^|findstr /n "^"^|findstr /l /b /c:"11:"') do echo %b
执行命令,对输出进行编号,检索所需的行,拆分初始编号并回显其余部分
set "x=1" & for /f "skip=10 delims=" %a in ('ipconfig') do @(if defined x (set "x=" & echo %a))
设置一个标志变量,执行命令,跳过前10行,如果设置了标志,则为每一行,清除标志并回显该行
答案 1 :(得分:2)
Could I run this in a single command? I mean not through a batch file.
是的:
ipconfig |find "Default Gateway"
(在命令行和批处理文件中运行)