[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
不是人家不帮你,是人家不好帮你。
原因是你太罗嗦还没有把问题讲清楚。
你把A 、B 、C 的范例给出..........

TOP

随风版主你好,其实我的范文在 6楼已经大致给出来了!
C.txt就是一个里面包括了即一个"即将被替换的文本" , 核心就是这个 "即将被替换的文本" ,我说让c.txt调用而不是把内容放在bat里面就是想让c.txt更加可编辑性!

比如c.txt 是如下内容

111111111111111111"即将被替换的文本"22222222222222222"即将被替换的文本"33333333333333333


就是让bat处理用a.txt里面的文本去依次替换并生成新的txt

我也将a.txt和b.txt再把举例的写出来吧:

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

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

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

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


Ps:我测试下来,9楼的caruko大哥的是成功的! 不足之处就是把c.txt内容放置在bat里面,没有单独调用让c.txt更加具有可编辑性!

谢谢大家
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

唉~~~
既然楼主只能交代这么多已知条件,就试着写写吧
代码条件
1、a、b、c、文本中不能含半角感叹号
2、c.txt 第一行为标题,即:在这一行前面随机加入b.txt的行,c.txt从第二行起开始替换城市名,需注意的是,比如替换的是“北京”那么c.txt中的所有“北京”词组都会替换掉,不管在正文中它是不是城市名都会被替换
3、c.txt中的空行会被忽略
4、c.txt中的第一行“聊天”前面的字符为需替换的城市名
代码未测试,有问题跟帖。。。
  1. @echo off&SETLOCAL ENABLEDELAYEDEXPANSION
  2. if not exist newtxt\ md newtxt
  3. for /f "delims=" %%a in (b.txt) do (
  4.    set /a n+=1&set ".!n!=%%a"
  5. )
  6. for /f "delims=" %%a in (a.txt) do (
  7.    set /a w=!random!%%n+1,m=1
  8.    for /f "delims=" %%b in (c.txt) do (
  9.   set num=%%b
  10.       if !m! equ 1 (
  11.      for /f "delims=聊" %%I in ("%%b") do set "m=%%I"
  12. for /f "delims=" %%D in ("!m!") do set num=!num:%%D=%%a!
  13.          for %%i in (!w!) do echo !.%%i!,!NUM!>"newtxt\%%a.txt"
  14.          ) else (
  15.    for /f "delims=" %%D in ("!m!") do set num=!num:%%D=%%a!
  16.    echo !Num!>>"newtxt\%%a.txt"
  17.    )
  18. )
  19. )
  20. start newtxt
复制代码
技术问题请到论坛发帖求助!

TOP

哎,还是你们思维比较缜密,我到现在才明白为啥让我把c.txt写的更加完善点的用途了!

随风版主,上面的测试完全没有问题,但是,确实因为我的疏忽,所以我明白你为啥要指定一个 "聊" 为特定字符了!
我现在反过来给你指定 即将被替换的文本为  "指定替换"  ! 也就是说c.txt里面无论标题或者正文只要碰到 "指定替换"  他就按a.txt里面的逐一替换!


这样c.txt形如如下范文:
111111111111指定替换22222222222 →这里是标题
3333333333333指定替换44444444指定替换555555555指定替换66666666指定替换77777777指定替换99999 →这里是正文

这样就不要指定标题具体到哪个字前面需要替换了,是吗?

谢谢随风大哥的帮忙


相信你明白我意思了,再麻烦你一下!有问题我在线到继续跟帖。。。
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

  1. @echo off&SETLOCAL ENABLEDELAYEDEXPANSION
  2. if not exist newtxt\ md newtxt
  3. set var=指定替换
  4. set /p str=<c.txt
  5. for /f "delims=" %%a in (b.txt) do set /a n+=1&set ".!n!=%%a"
  6. for /f "delims=" %%a in (a.txt) do (
  7.    set /a w=!random!%%n+1
  8.    for %%i in (!w!) do echo !.%%i!,!str:%var%=%%a!>"newtxt\%%a.txt"
  9.    for /f "skip=1 delims=" %%b in (c.txt) do (
  10.       set num=%%b
  11.       set num=!num:%var%=%%a!
  12.       echo !Num!>>"newtxt\%%a.txt"
  13.     )
  14. )
  15. start newtxt
复制代码
技术问题请到论坛发帖求助!

TOP

3ks 随风,你是最棒的!
晚安!
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

返回列表