找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25298|回复: 4

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

[复制链接]
发表于 2016-12-5 20:20:23 | 显示全部楼层 |阅读模式
本帖最后由 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”中的随机一行)。
发表于 2016-12-6 00:09:54 | 显示全部楼层
本帖最后由 Blitz 于 2016-12-6 00:10 编辑

http://www.bathome.net/thread-25518-1-1.html
   8楼
类似的,自己看着改一下就好了
 楼主| 发表于 2016-12-6 19:53:35 | 显示全部楼层
回复 2# Blitz


    但是就算给我我也不会啊,随机行问题我压根不知道如何解决。
发表于 2016-12-6 20:39:06 | 显示全部楼层
  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]}))
复制代码
 楼主| 发表于 2016-12-6 21:03:55 | 显示全部楼层
回复 4# pcl_test


    这...什么意思?...没看懂...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 11:44 , Processed in 0.015880 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表