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

[文本处理] [已解决] 批处理如何从多个文本逐行读取内容组合合并

本帖最后由 pcl_test 于 2017-6-6 19:43 编辑

因为工作需要,做公司做论坛活动,一个关于文本的批量替换生成处理,恳请得到大家的帮助!

问题是这样的:

同一文件夹下有3个文本文件:

一个文本文件内是全国大小城市名称,(由自己整理一行一个依次排列,文本命名为:A.txt)!
一个文本文件内是N多歇后语,也是,(由自己整理一行一个依次排列,文本命名为:B.txt)!
一个文本文件内是举例文本文件文本命名为C.txt  , 文本打开里面的范文内容形如下面这个例子:

上海聊天论坛开通,欢迎上海的朋友前来捧场
告诉大家一个好消息,期待已久的上海聊天论坛备案成功已经开通了,欢迎上海的朋友前来捧场,我们特地在上海市中心设定一个团购接待点,届时期待上海论坛通告!


为了能使得大家很好的理解,我举一个例子说明一下,最后的运行下来一个其中一个结果差不多应该是这样的,大家注意我加粗的字:

八仙过海,各显神通北京聊天论坛开通,欢迎北京的朋友前来捧场
告诉大家一个好消息,期待已久的北京聊天论坛备案成功已经开通了,欢迎北京的朋友前来捧场,我们特地在北京市中心设定一个团购接待点,届时期待北京论坛通告!

其中,八仙过海,各显神通 来自第2个文本文件里面的随机一行歇后语然后“上海”替换成了“北京”这个是由第一个文本文档里面的城市名决定的!

最后生成多少结果,视第一个文本文件里面有多少行,在这里意思就是第一个文本文档里面有多少个城市最后就生成多少个txt,方便管理,生成的新的txt可以生成在该文件夹的新建文件夹里面,我们把它命名为newtxt

如下我做了个截图:






二楼你好,那个只是我举个例子而已,不是你想象中那么恶劣哦 .不过还是谢谢你,不是你,还真被很多人误解呢?  致二楼 :

一个帖子,可能给你带来非常好的思路,
一个帖子,可能给你带来非常好的合作机会。
一个帖子,可以让你更快速的了解互联网的最新信息。并参与其中 ,有收获有乐趣。




[]

[ 本帖最后由 fanfande 于 2010-8-9 01:17 编辑 ]
有创新,多创新;无创新,多模仿;无模仿,多坚持

你慢慢回家替换去吧,最讨厌这种到处乱发帖的家伙1~

TOP

果然被二楼把我卖光了.一天了只有看的却没有回复的,二楼我恨你 !

[ 本帖最后由 fanfande 于 2010-8-6 23:57 编辑 ]
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

一个帖子,可能给你带来非常好的思路,
一个帖子,可能给你带来非常好的合作机会。
一个帖子,可以让你更快速的了解互联网的最新信息。并参与其中 ,有收获有乐趣。


恳请大家互相帮助 !帮助了别人, 快乐了自己
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

这个帖子晒了这么久都没人来解决,楼主想过自己的原因吗
本来不想回的,看你等了这么久,还是回回吧
相信论坛很多人都和我一样,最讨厌需要不停反问楼主才能搞清楼主的具体要求或已知条件。
你的c.txt中,歇后语和城市名是如何区分的?
歇后语都是八个字吗?
歇后语都是每四个字后面有一个逗号吗?
城市名都是两个字吗?
随机替换,允许有重复的歇后语或城市名吗?

最后,你这个好像有点貌似广告?
技术问题请到论坛发帖求助!

TOP

随风版主,我是一名电子产品销售员,虽然我是销售,但是我对互联网的热爱,不仅仅是限于逛逛论坛,灌灌水,我平时抽空自己做网站玩,纯粹是兴趣 !自身有很多不足之处请谅解!

①A.TXT  里面大体这样的,一行一个,每行没数字限制,下面是若干举例:

上海
北京
深圳
天津
广州
香港
南京
苏州
杭州
......等等城市名称!




②B.txt 里面是一些常用短语.也是一行一个,每行也没有数字限制,下面是若干举例:

金玉其外败絮其中
八仙过海各显神通
经验比理论来得实在
有则改之无则加勉
......等等类似的常用语!


③C.txt 里面就是一个范文,第一行是正文标题,从第2行开始是正文,这里我只是举例,不是和大家理解的那样我乱贴广告的,范文形式形如:

上海聊天论坛开通,欢迎上海的朋友前来捧场
告诉大家一个好消息,期待已久的上海聊天论坛备案成功已经开通了,欢迎上海的朋友前来捧场,我们特地在上海市中心设定一个团购接待点,届时期待上海论坛通告!


目的就是用A.TXT里面的每个城市名称依次替换范文里面的  上海
然后在标题前面再加上一个常用短语,最后生成若干新的txt,生成的个数由A文件里面的城市名个数决定,生成的txt文件名就以各自的城市名为txt命名吧!

下面我抽出一个结果给大家看一下:

八仙过海,各显神通,北京聊天论坛开通,欢迎北京的朋友前来捧场 (正如随风所言,确实是常用语后面一个逗号)
告诉大家一个好消息,期待已久的北京聊天论坛备案成功已经开通了,欢迎北京的朋友前来捧场,我们特地在北京市中心设定一个团购接待点,届时期待北京论坛通告!

大家注意到正文标题前面多了一个B.txt里面随机而来的常用短语,这里常用短语不重复最好!
然后正文里面的各自的城市被A.TXT里面的城市名替换掉了.

最后将生成好的各自文件(如:上海.txt 北京.txt  深圳.txt  南京.txt )放在newtxt这个文件夹里面.



大体意思就是这样的! 再次表示感谢! 我这个帖子没有丝毫广告的意思,我是认真的,希望能得到大家的理解认可 !

[ 本帖最后由 fanfande 于 2010-8-7 02:00 编辑 ]
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

换种说法
就是说新生成的文件正文内容都是一样的吗?除了你说的歇后语和城市名有变化以外

八仙过海,各显神通,北京聊天论坛开通,欢迎北京的朋友前来捧场
告诉大家一个好消息,期待已久的北京聊天论坛备案成功已经开通了,欢迎北京的朋友前来捧场,我们特地在北京市中心设定一个团购接待点,届时期待北京论坛通告!
技术问题请到论坛发帖求助!

TOP

是的,大家都这么晚啊,还看到好多人在线,大家辛苦啊!

新生成的txt和范文的区别就是城市名发生变化
同时,正文标题最前面被添加了随机不重复的常用语!

新生成的txt放置在newtxt文件夹里面,生成的个数由A.txt里面的城市名个数决定,也就是多少行就生成多少个
生成的txt命名方式就用各自的城市名命名吧!
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

  1. @echo off&SETLOCAL ENABLEDELAYEDEXPANSION
  2. set /a x=0
  3. for /f "delims=*" %%a in (b.txt) do set "_!x!=%%a" & set  /a x+=1
  4. for /f "delims=*" %%a in (a.txt) do (
  5.        set /a r=!random!%%!x!
  6.         echo;%_!r!%,%%a聊天论坛开通,欢迎%%a的朋友前来捧场!>>newtxt\%%a.txt
  7.     echo;告诉大家一个好消息,期待已久的%%a聊天论坛备案成功已经开通了,欢迎%%a的朋友前来捧场,我们特地在%%a市中心设定一个团购接待点,届时期待%%a论坛通告!>>newtxt\%%a.txt
  8. )
复制代码

TOP

caruko你好

最好让bat读取c.txt 因为那样可编辑余地更大!

这里存在一个问题,我广告测试了一下

好像不能够将b.txt里面的常用语加到正文标题的前面

诸如:


八仙过海,各显神通,北京聊天论坛开通,欢迎北京的朋友前来捧场
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

请问,假使要让批处理 得到的结果

正文标题前面随机的常用短语都不重复的话

是不是要b.txt的行数,大于a.txt的行数
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

把echo;%_!r!% 改成call echo;%%_!r!%%就可以了。

如果另写一个C.txt,循环读取会影响效率。
而且是多行文本,就算设成变量,也要多N个循环。N=城市数*C.txt行数

所以不如直接写在bat里,或者这样。另外a.txt 最好不要有空行。
  1. @echo off&SETLOCAL ENABLEDELAYEDEXPANSION
  2. set /a x=0
  3. for /f "delims=*" %%a in (b.txt) do set "_!x!=%%a" & set  /a x+=1
  4. for /f "delims=*" %%a in (a.txt) do (
  5.        set /a r=!random!%%x
  6.        call :msg %%_!r!%% %%a >>newtxt\%%a.txt
  7. )
  8. :msg
  9. echo;%1,%2聊天论坛开通,欢迎%2的朋友前来捧场!
  10. echo;告诉大家一个好消息,期待已久的%2聊天论坛备案成功已经开通了,欢迎%2的朋友前来捧场,我们特地在%2市中心设定一个团
  11. 购接待点,届时期待%2论坛通告!
复制代码

TOP

3ks大家的帮忙,而且我发现大家和我一样都非常晚睡觉,哈哈
caruko 我给你发了个论坛短消息,收到了吗??
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

caruko你好,麻烦帮我出个完整的,从c.txt调用的那种  
我看了你的回复,那么晚还在,真谢谢你!

直接将c的内容写在bat里面有弊端,那就是可编辑性比较小,忽略效率的问题的话,可以帮我出个完整的bat吗.?我还是将范文放在c.txt里面!

谢谢了!周末愉快
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

如果方便的话,最好给出c.txt的全部内容
技术问题请到论坛发帖求助!

TOP

返回列表