Board logo

标题: [文本处理] 请教:批处理如何提取两个特定字符间的文本? [打印本页]

作者: t720    时间: 2018-11-20 16:08     标题: 请教:批处理如何提取两个特定字符间的文本?

IPv4 地址 . . . . . . . . . . . . : 192.168.2.87(首选)请教怎样提取这一行中的IP地址?因为第四段可能是一位数字,也可能是三位数字,所以要提取 “ ”之后、“”之前的这一段,不知道怎样实现。
新人求指点,谢谢各位大神!
作者: xczxczxcz    时间: 2018-11-20 21:56

for /f "tokens=2 delims=(:" %%a in (set) do echo %%a
作者: Batcher    时间: 2018-11-20 22:02

  1. @echo off
  2. for /f "tokens=2 delims=:(" %%i in ('ipconfig /all ^| findstr /i "IPv4.*首选"') do (
  3.     set "IP=%%i"
  4. )
  5. set "IP=%IP: =%"
  6. echo %IP%
  7. pause
复制代码

作者: xczxczxcz    时间: 2018-11-21 11:34

回复 3# Batcher

把 /all 删掉 应该更好。可减少很多无关行和字符
作者: xczxczxcz    时间: 2018-11-21 11:40

PS
  1. ipconfig |?{$_ -match 'IPv4'}|%{$_.split(': ')[-1].trim()}
复制代码

作者: Batcher    时间: 2018-11-21 20:56

回复 4# xczxczxcz


    我看楼主顶楼的描述推测他用的是 ipconfig /all 不知道是否有特殊原因




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2