标题: [文本处理] 请教:批处理如何提取两个特定字符间的文本? [打印本页]
作者: 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
- @echo off
- for /f "tokens=2 delims=:(" %%i in ('ipconfig /all ^| findstr /i "IPv4.*首选"') do (
- set "IP=%%i"
- )
- set "IP=%IP: =%"
- echo %IP%
- pause
复制代码
作者: xczxczxcz 时间: 2018-11-21 11:34
回复 3# Batcher
把 /all 删掉 应该更好。可减少很多无关行和字符
作者: xczxczxcz 时间: 2018-11-21 11:40
PS- 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 |