[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解決]批处理怎样刪除兩個特定字符之間的內容並進行替換<多行>?

本帖最后由 leo198444 于 2011-9-12 14:08 编辑

请教一下

我有一个a.txt文本,要差找特定字串和特定字串之间的内容,并对特定字符进行替换

以下红色数字是要替换的部份

例如 9  要替換成 StrCpy $download9

但9这个数字是非固定的

范例

处理前:
<div class="x-p-ext-block" style="margin-buttom: 5px"><div class="x-p-ext-title" style="width:1024px;">.part009.rar</div><div class="x-p-ext-img"><a href="http://photo.xuite.net/_pic/hannstar/1884112/69089575.jpg/redir"><img src="http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg" border="0"></a></div><div class="x-p-ext-desc" style="width: 1024px;"></div></div>


处理后:
StrCpy $download9 'http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg'
请问要怎么处理,谢谢
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 leo198444 于 2011-9-11 22:43 编辑

我的具体想法是...


第一阶段以<div class="x-p-ext-block"part00作为分隔符,然后包含分隔符进行删除
<div class="x-p-ext-block" style="margin-buttom: 5px"><div class="x-p-ext-title" style="width:1024px;">.part009.rar</div><div class="x-p-ext-img"><a href="http://photo.xuite.net/_pic/hannstar/1884112/69089575.jpg/redir"><img src="http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg" border="0"></a></div><div class="x-p-ext-desc" style="width: 1024px;"></div></div>


第二阶段以.rar<img src="作为分隔符,然后包含分隔符进行删除
9.rar</div><div class="x-p-ext-img"><a href="http://photo.xuite.net/_pic/hannstar/1884112/69089575.jpg/redir"><img src="http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg" border="0"></a></div><div class="x-p-ext-desc" style="width: 1024px;"></div></div>


第三阶段以" border</div></div>作为分隔符,然后包含分隔符进行删除
9http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg" border="0"></a></div><div class="x-p-ext-desc" style="width: 1024px;"></div></div>


第四阶段在每个行首插入这个字串StrCpy $download
StrCpy $download9 http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg


第五阶段把http替换为 'http
StrCpy $download9 'http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg


第六阶段把jpg替换为jpg'  
StrCpy $download9 'http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg'


完成

虽然我有学程式,对一些变量函式有点基础

但是尝试批处理不知道怎么转义字符,也不懂怎样处理这么复杂的字串

请求帮忙

TOP

有点儿乱的感觉。。。但是不能以字串作为分割符呀,只能以单个字符作为分隔符,你所说的删除倒是可以用set的替换功能办到。但楼主讲得确实有点儿费解啊,就在就题论题了,没有把问题的通用规律分析出来。
看得多说得多,远比不上写得多。

TOP

  1. sed -r "s/.*part00([0-9]).rar.*src=.(.*). border.*/StrCpy $download\1 '\2'/" test.txt >output.txt
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

本帖最后由 leo198444 于 2011-9-12 13:50 编辑

我比较大的问题就在于必须用字串作为分割符进行删除

文中提到的分隔符部份是固定存在的

我尝试学习sed 来替换看看

给楼上的Seder ,感谢帮忙

但是我用你的代码处理后的字串是一片空白

还不能理解原理@@

TOP

Seder 发表于 2011-9-12 10:41



    抱歉
刚执行忘了加sed.exe文件

成功了

但是9这个数字有超过十位数

您的代码一旦超过十位数的行就不进行处理了

请问该怎么修改能处理超过十位数

像遇上part010.rar的数字就不处理了

谢谢

TOP

研究了一下

瞭解原理了,改成這樣就能辨別百位數了

謝謝Seder幫忙
  1. sed -r "s/.*part([0-9][0-9][0-9]).rar.*src=.(.*). border.*/StrCpy $download\1 '\2'/" a.txt >output.txt
复制代码

TOP

你又不说清楚点,其实都很容易实现的

TOP

返回列表