Windows命令行获取最后一列

时间:2015-01-18 13:38:50

标签: regex windows command-line

我正在尝试打印/剪切以下命令中的最后一列

ipconfig |findstr "Default Gateway"

Q1如何在不安装cygwin等项目的情况下在Windows命令行界面中实现此目的?

另外,因为我安装了几台VMware机器,我得到了多个空的默认网关。

Q2是否可以在Windows中创建仅显示包含实际IP地址语法的最后一列/列的正则表达式。排除空列和::列。 enter image description here

2 个答案:

答案 0 :(得分:1)

findstr接受/r选项,使字符串被视为正则表达式:

您想要获得的行以数字结尾;你可以使用以下模式:

[0-9]$

ipconfig | findstr "Default Gateway" | findstr /r "[0-9]$"

答案 1 :(得分:0)

作为Windows批处理文件:

@ECHO OFF
SETLOCAL
FOR /f "tokens=2*delims=:" %%a IN ('ipconfig^|findstr /L /c:"Default Gateway"') DO FOR /f "tokens=*" %%d IN ("%%a") DO IF NOT "%%d"=="" ECHO(%%d

GOTO :EOF

直接来自提示:

cls& setlocal& @FOR / f" tokens = 2 * delims =:" %a IN(' ipconfig ^ | findstr / L / c:"默认网关"')DO @FOR / f"令牌= *" %d IN("%a")DO @IF NOT"%d" =="" ECHO(%d