Board logo

标题: [文本处理] 批处理如何实现将一个文本里的特定字符串替换为另一文本中的随机一行 [打印本页]

作者: yecabf91637    时间: 2016-12-5 20:20     标题: 批处理如何实现将一个文本里的特定字符串替换为另一文本中的随机一行

本帖最后由 pcl_test 于 2016-12-5 20:51 编辑

有当前目录下,有N个文件。


第一个文件“项目目录.txt”中的内容为:
        针对于项目A的这种情况,我们可采取【项目A方案】这样的方案,避免特殊情况的发生。
        但是除了要推动项目A外,我们仍需考虑项目B,避免项目A不被市场所接受而遭受较大损失,比如说采取【项目B方案】这样的手段来作为备用……
第二个文件“【项目A方案】.txt”中的内容为(其中每个方案为一行):
        项目A方案一
        项目B方案二
        项目C方案三
        ……
第三个文件“【项目B方案】.txt”中的内容为(其中每个方案为一行):
        项目B方案一
        项目B方案二
        项目B方案三
        ……
第四个文件“【项目C方案】.txt”中的内容为(其中每个方案为一行):
        项目C方案一
        项目C方案二
        项目C方案三
        ……
………………


而所需要的,就是将“项目目录.txt”中的关键字“【项目???】”修改,替换为相对应“【项目???方案】.txt”文件中,随机一套方案(也就是替换“【项目???方案】.txt”中的随机一行)。
作者: Blitz    时间: 2016-12-6 00:09

本帖最后由 Blitz 于 2016-12-6 00:10 编辑

http://www.bathome.net/thread-25518-1-1.html
   8楼
类似的,自己看着改一下就好了
作者: yecabf91637    时间: 2016-12-6 19:53

回复 2# Blitz


    但是就算给我我也不会啊,随机行问题我压根不知道如何解决。
作者: pcl_test    时间: 2016-12-6 20:39

  1. /*&cls
  2. @echo off
  3. rem 保存为批处理文件跟所有相关txt文件放一起运行
  4. cscript -nologo -e:jscript "%~f0"<"项目目录.txt"
  5. pause&exit
  6. */
  7. var fso=new ActiveXObject('Scripting.FileSystemObject');
  8. WSH.echo(WSH.StdIn.ReadAll().replace(/【项目[^【]+?方案】/g, function(a){
  9. return fso.OpenTextFile(a+'.txt',1).ReadAll().split(/[\r\n]+/).sort(function(){return Math.random()-0.5})[0]}))
复制代码

作者: yecabf91637    时间: 2016-12-6 21:03

回复 4# pcl_test


    这...什么意思?...没看懂...




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2