![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 00:58 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]文本中按行提取特定字符开头的字符串的问题。 |
| 可打印版本 2,357 / 21 |
| 第1楼 nanhezzb | 发表于 2008-12-14 16:54 |
| 初级用户 发帖 32 积分 37 | |
|
[已结]文本中按行提取特定字符开头的字符串的问题。 test.txt内容如下:
测试文本大致为此种格式: 1每行有N段字符串,都使用“ - ”来分隔 2.路径的信息可能是其他后缀名的文件,文件路径可能含有“-”。 3.用“-”作为分隔符,含有路径的字符串是不确定在第几段的位置。 4.路径的有盘符为不确定是C,有可能是D\E\F……. 我想通过批处理,逐行分析提取从盘符开始直到扩展名结束的字符串(测试文本的红色部分),也就是不管什么方法提取每行中的文件的路径信息,因为其他段都是一些文件的属性参数和路径无关。 小弟的水平,是在是想不出来一个完美点的批处理。 ——————————————————————— 感谢2楼的朋友,再次更新了问题!谢谢大家的回复和帮助!! ——————————————————————— [ Last edited by HAT on 2008-12-15 at 18:12 ] |
|
| 第2楼 tireless | 发表于 2008-12-14 17:36 |
| 银牌会员 发帖 1,122 积分 2,025 | |
| 第3楼 tireless | 发表于 2008-12-14 18:12 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
re 4 楼 |
|
| 第4楼 HAT | 发表于 2008-12-15 10:54 |
| 版主 发帖 5,017 积分 9,023 | |
|
撇开批处理不谈,你是如何用人工提取路径信息的呢?你把规律总结出来,自然有人告诉你如何写代码。
|
|
| 第5楼 nanhezzb | 发表于 2008-12-15 12:06 |
| 初级用户 发帖 32 积分 37 | |
Originally posted by HAT at 2008-12-15 10:54 AM: 人工的话,每行中从盘符(C、D或者其他)开始直到文件扩展名(.sys、.dll)结束。也就是文件的全路径,比如C:\WINDOWS\system32\drivers\XXXX.sys或者C:\WINDOWS\system32\XXXX.dll 想通过批处理,逐行分析提取从盘符开始直到扩展名结束的字符串(测试文本的红色部分),也就是不管什么方法提取每行中的文件的路径信息,因为其他段都是一些文件的属性参数和路径无关。 [ Last edited by nanhezzb on 2008-12-15 at 12:12 ] |
|
| 第6楼 nafan | 发表于 2008-12-15 13:21 |
| 初级用户 发帖 21 积分 22 | |
|
没有来得及细想,是否可以按照这个思路呢:
先按照" - "分隔符号把文本分成一个一个字段 然后提取包含:\的字段。 |
|
| 第7楼 nafan | 发表于 2008-12-15 13:25 |
| 初级用户 发帖 21 积分 22 | |
|
建议用awk 或者grep
|
|
| 第8楼 slore | 发表于 2008-12-15 13:32 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
空格-空格替换为某字符……
然后分割…… 文件路径带" - "的话会出问题,不过个人认为大部分都不会除了歌曲那些东西 |
|
| 第9楼 a794685135 | 发表于 2008-12-15 13:43 |
| 初级用户 发帖 34 积分 71 | |
|
按照8楼的思路写了个
|
|
| 第10楼 slore | 发表于 2008-12-15 14:00 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
。。。少说了点……
先:分割…… 前半部分set取最后一个字符得到Driver 后部分再按8楼走…… 后面也可以一个个取。。。自己匹配吧 |
|
| 第11楼 nanhezzb | 发表于 2008-12-15 14:32 |
| 初级用户 发帖 32 积分 37 | |
Originally posted by a794685135 at 2008-12-15 01:43 PM: |
|
| 第12楼 tireless | 发表于 2008-12-15 14:44 |
| 银牌会员 发帖 1,122 积分 2,025 | |
| 第13楼 nanhezzb | 发表于 2008-12-15 14:59 |
| 初级用户 发帖 32 积分 37 | |
Originally posted by tireless at 2008-12-15 02:44 PM: 这种先取:后面的段,然后添加前面的盘符。相比之下,对路径里面或者是其他段的空格或者是-的准确度比较高呢? 高手能不能讲下set的参数以及表达式意思 [ Last edited by nanhezzb on 2008-12-15 at 15:41 ] |
|
| 第14楼 HAT | 发表于 2008-12-15 15:02 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 13楼 先看帮助,后提问。
set /? 环境变量替换已如下增强: |
|
| 第15楼 nanhezzb | 发表于 2008-12-15 15:10 |
| 初级用户 发帖 32 积分 37 | |
Originally posted by HAT at 2008-12-15 03:02 PM: |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |