中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 07:21
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 在文本中提取不同的字符? 查看 816 回复 11
楼 主 在文本中提取不同的字符? 发表于 2007-09-05 17:57 ·  中国 广西 柳州 电信
初级用户
积分 24
发帖 11
注册 2007-08-15 15:49
18年会员
UID 95192
性别 男
状态 离线
要求把:
"Physical Address. . . . . . . . . : 00-0F-EA-B5-9F-D1”这行文字提炼成"000FEAB59FD1"
2 发表于 2007-09-05 18:30 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
for /f "tokens=2 delims=:" %%i in (1.txt) do set str=%%i
set str=%str:-=%
echo %str%
3 发表于 2007-09-05 18:32 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
自己搜索一下。以前有人问过
4 发表于 2007-09-06 08:57 ·  中国 广西 柳州 电信
初级用户
积分 24
发帖 11
注册 2007-08-15 15:49
18年会员
UID 95192
性别 男
状态 离线
问题已解决,非常感谢wudixin96提供解决办法。

具体代码是:
for /f "delims=: tokens=1*" %%a in ('ipconfig/all^|find "Physical dress"') do set mac=%%b

set mac=%mac:-=%
5 发表于 2007-09-06 10:49 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
凑个热闹。呵呵
ipconfig/all|find "Physical"|sed s/.*://;s/-//g
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
6 发表于 2007-09-06 15:37 ·  中国 广西 柳州 电信
初级用户
积分 24
发帖 11
注册 2007-08-15 15:49
18年会员
UID 95192
性别 男
状态 离线
Originally posted by ccwan at 2007-9-6 10:49 AM:
凑个热闹。呵呵
ipconfig/all|find "Physical"|sed s/.*://;s/-//g


请高手ccwan能说明一下sed s/.*://;s/-//g的涵义,另外在哪找这方法的资料?
7 发表于 2007-09-06 15:45 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
sed s/.*://;s/-//g命令的前半部分, s/.*://是把冒号之前的所有字符替换为空;后面s/-//g是把xx-xx-xx-xx-xx-xx中的 "-" 替换为空。
希望了解sed的用法,请搜索无奈何版主的"sed文章收集"的帖子。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
8 发表于 2007-09-06 16:00 ·  中国 广西 柳州 电信
初级用户
积分 24
发帖 11
注册 2007-08-15 15:49
18年会员
UID 95192
性别 男
状态 离线
Originally posted by ccwan at 2007-9-6 03:45 PM:
sed s/.*://;s/-//g命令的前半部分, s/.*://是把冒号之前的所有字符替换为空;后面s/-//g是把xx-xx-xx-xx-xx-xx中的 "-" 替换为空。
希望了解sed的用法, ...


感谢帮助,找到无奈何版主有关sed用法的帖子!
9 发表于 2007-12-29 15:54 ·  中国 广西 柳州 电信
初级用户
积分 24
发帖 11
注册 2007-08-15 15:49
18年会员
UID 95192
性别 男
状态 离线
这个贴已经沉到水底了
10 发表于 2008-01-15 11:47 ·  中国 重庆 璧山区 电信
新手上路
积分 14
发帖 6
注册 2008-01-14 22:35
18年会员
UID 108626
性别 男
状态 离线
多谢各位朋友们高义,在此表示感谢!
11 发表于 2008-01-15 13:30 ·  中国 重庆 璧山区 电信
新手上路
积分 14
发帖 6
注册 2008-01-14 22:35
18年会员
UID 108626
性别 男
状态 离线
多谢各位朋友们高义,在此表示感谢!
12 发表于 2008-01-22 15:32 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
4楼的代码有问题,经测试,以下代码才能达到要求
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('ipconfig/all^|find "Physical Address"') do (
for /f "delims=: tokens=2" %%b in ("%%a") do (
set aa=%%b
set aa=!aa:-=!
echo !aa!
)
)
pause&exit
论坛跳转: