标题: [文本处理] [已解决]批处理怎样把文本文档里关键词加到对应网址里? [打印本页]
作者: daohe 时间: 2011-3-27 17:10 标题: [已解决]批处理怎样把文本文档里关键词加到对应网址里?
本帖最后由 daohe 于 2011-3-28 00:22 编辑
此批处理的作用是把关键词加到对应网址里.
w.txt(包含全部网址,可能带有问号和等号,形式如下)
www.abc.com/1.html
www.abc.com/2.html
www.abc.com/3.html
www.abc.com/4.html
www.abc.com/5.html
a.txt(包含w.txt部分网址,顺序随机,逗号后面带有一字符串,形式如下)
www.abc.com/1.html,x-y-z
www.abc.com/2.html,x-y-z
www.abc.com/3.html,x-yz-zz
www.abc.com/4.html,x-yz-zz
b.txt(包含w.txt部分网址,与a.txt部分网址有重复,顺序随机,逗号后面带有一组数据,形式如下)
www.abc.com/1.html,j-k
www.abc.com/3.html,j-kb
www.abc.com/4.html,j-kc
www.abc.com/5.html,j-k
求一批处理,处理后成
c.txt(按顺序,把a.txt b.txt逗号后面的字符串加到w.txt每行网址后面,用逗号隔开)
www.abc.com/1.html,x-y-z,j-k
www.abc.com/2.html,x-y-z,others
www.abc.com/3.html,x-yz-zz,j-kb
www.abc.com/4.html,x-yz-zz,j-kc
www.abc.com/5.html,others,j-k
1. 生成的c.txt
第一列网址与w.txt完全相同;
第二列为a.txt对应网址后的字符串,若没有则加上others;
例如:例子里的a.txt 不包含www.abc.com/5.html,则在第一列加上others.
第三列为b.txt对应网址后的字符串,若没有则加上others;
例如:例子里的b.txt 不包含www.abc.com/2.html,则在第二列加上others.
PS : w.txt,a.txt,b.txt每个文件内的网址均不重复.
补充:
其实生成的c.txt就是一个表格.
第一列是w.txt里的网址
第二列是a.txt网址后面的字符串
第三列是b.txt网址后面的字符串
a.txt,b.txt第一列网址的作用就是,定位a.txt,b.txt里面的字符串,把 某一字符串对应的网址填入w.txt.
请问我的阐述还不明白吗?
作者: tmplinshi 时间: 2011-3-27 18:25
- @echo off
- SetLocal EnableDelayedExpansion
- set "file_url=w.txt"
- set "file_str1=a.txt"
- set "file_str2=b.txt"
- set "file_out=c.txt"
-
- for %%n in (1 2) do (
- for /f "usebackq tokens=1,2 delims=," %%a in ("!file_str%%n!") do (
- set %%a_%%n=%%b
- )
- )
-
- (for /f "usebackq" %%u in ("%file_url%") do (
- if not defined %%u_1 set %%u_1=others
- if not defined %%u_2 set %%u_2=others
- echo %%u,!%%u_1!,!%%u_2!
- )) >"%file_out%"
复制代码
作者: weichenxiehou 时间: 2011-3-27 18:40
本帖最后由 weichenxiehou 于 2011-3-27 18:43 编辑
题目没看清,理解错误!
作者: daohe 时间: 2011-3-27 19:12
我这样描述,还是会理解出现歧义.
我的表达还不是很明确,真不好意思.
3# weichenxiehou
作者: daohe 时间: 2011-3-27 19:19
代码运行后没反应,
我尝试修改了代码,还是一样没反应.请问到底是哪里错了?
3# weichenxiehou
作者: Batcher 时间: 2011-3-27 21:53
5# daohe
把@echo off删掉,看看哪一步出错了。
作者: weichenxiehou 时间: 2011-3-27 22:23
4# daohe
楼主误解我的意思了,我并不是说楼主表达得不够清楚,而是我之前写了一个代码,看到二楼版主写的代码才知道有个地方理解错了,就只好把代码删了,但是3楼的位置已经占了,就只好这么说一句了。2楼的代码我测试了没问题啊,版主写得很好的。
作者: daohe 时间: 2011-3-28 00:21
怀疑是discuz的问题
我点击下面[复制代码按钮],然后粘贴到记事本里去保存,一直就是出错状态.
直接选中复制黏贴, 就能正常运行代码.
6# Batcher
作者: daohe 时间: 2011-3-28 00:22
7# weichenxiehou
非常感谢.
作者: daohe 时间: 2011-3-28 00:22
2# tmplinshi
感谢版主给了这么好的批处理
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |