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

[文本处理] 如何实现从一个文本读取内容并替换掉另一个文本的指定字符串?

[复制链接]
发表于 2016-4-1 13:01:47 | 显示全部楼层 |阅读模式
批处理BAT,或是用VBS,应该怎么写

读取2号文本的第一行内容  -50sdj密码,写进1号文本mo01的位置。
读取2号文本的第二行内容  30,写进1号文本LP01的位置。

读取3号文本的第一行内容  62,写进1号文本mo02的位置。
读取3号文本的第二行内容  -10密码sdj,写进1号文本LP02的位置。

写入后的效果
<DOMBitmapInstance selected="true" libraryItemName="19780">
                                             <matrix>
                                                  <Matrix tx="-50sdj密码" ty="30"/>

<DOMBitmapInstance selected="true" libraryItemName="19781">
                                             <matrix>
                                                  <Matrix tx="62" ty="-10密码sdj "/>
发表于 2016-4-1 14:07:47 | 显示全部楼层
  1. @echo off
  2. (set /p 1-=&set /p -1=)<2号.txt
  3. (set /p 2-=&set /p -2=)<3号.txt
  4. (for /l %%i in (1 1 7) do (
  5.         set/p %%i=
  6.         setlocal enabledelayedexpansion
  7.         for /l %%i in (1 1 50) do (set #= !#!)
  8.         if %%i equ 3 (
  9.                 echo !#!^<Matrix tx="!1-!" ty="!-1!"/^>
  10.         ) else (
  11.                 if %%i equ 7 (
  12.                         echo !#!^<Matrix tx="!2-!" ty="!-2!"/^>
  13.                 ) else (
  14.                         echo;!%%i!
  15.                 )
  16.         )
  17.         endlocal
  18. ))<1号.txt>$
  19. move $ 1号.txt
复制代码
回复 1# mingjianko

评分

参与人数 1技术 +1 收起 理由
mingjianko + 1 感谢

查看全部评分

发表于 2016-4-1 14:47:00 | 显示全部楼层
貌似以后用的着啊,不过我想要的是批量处理的,而且2号文本和3号文本是log的
 楼主| 发表于 2016-4-1 22:11:49 | 显示全部楼层
谢谢    作者happy886rr,我用你的代码扩展4号文件到6号文件。没成功,能否增加以下注解,说明。
发表于 2016-4-1 22:28:08 | 显示全部楼层
回复 4# mingjianko
抱歉,我只解决你在贴中提到的1、2、3号文件。至于其他文件,你提问时也没交代清楚。
 楼主| 发表于 2016-4-1 22:47:28 | 显示全部楼层
你上面的代码能扩展吗
 楼主| 发表于 2016-4-1 22:48:28 | 显示全部楼层
@echo off
(set /p 1-=&set /p -1=)<2号.txt
(set /p 2-=&set /p -2=)<3号.txt
(set /p 3-=&set /p -3=)<4号.txt
(for /l %%i in (1 1 1 76) do (
        set/p %%i=
        setlocal enabledelayedexpansion
        for /l %%i in (1 1 1 50) do (set #= !#!)
        if %%i equ 19 (
                echo !#!^<Matrix tx="!1-!" ty="!-1!"/^>
        ) else (
                if %%i equ 28 (
                        echo !#!^<Matrix tx="!2-!" ty="!-2!"/^>
                ) else (
                     if %%i equ 37 (
                        echo !#!^<Matrix tx="!3-!" ty="!-3!"/^>
                ) else (
                        echo;!%%i!
                )
        )
        endlocal
))<1号.txt>$
move $ 1号.txt



这个是我照着你的扩展的。我是新手,没成功。失败了。哭。我错在哪里了。指点一下
 楼主| 发表于 2016-4-1 22:56:46 | 显示全部楼层
非常谢谢    作者happy886rr,谢谢你的帮助,我知道自己错在哪了,

在此万分的感谢【作者happy886rr】
 楼主| 发表于 2016-4-1 23:19:43 | 显示全部楼层
晕,。扩展到第5个文件,有失败了,哭了
发表于 2016-4-1 23:21:34 | 显示全部楼层
本帖最后由 pcl_test 于 2016-4-1 23:43 编辑

举个栗子
  1. /*&cls
  2. @echo off
  3. more +21 "%~f0"|cscript -nologo -e:jscript "%~f0"
  4. pause&exit
  5. */

  6. var txt1 = 'a\r\n1'.split('\r\n'),
  7.     txt2 = 'b\r\n2'.split('\r\n'),
  8.     txt3 = 'c\r\n3'.split('\r\n'),
  9.     txt4 = 'd\r\n4'.split('\r\n');
  10.    
  11. var arr = txt1.concat(txt2, txt3, txt4);

  12. var txt = WScript.StdIn.ReadAll().replace(/([\s\S]+)\*\//,'$1');
  13. var retxt = txt.replace(
  14.    /(<Matrix\stx=")([^"]*)("\sty=")([^"]*)("\s?\/>)/g,
  15.    function($0,$1,$2,$3,$4,$5){return $1+arr.shift()+$3+arr.shift()+$5}
  16. )
  17. WSH.echo(retxt);

  18. /*
  19. ……
  20.     <Matrix tx="fwef" ty="sdw"/>
  21. ……
  22.     <Matrix tx="dsfd" ty="rge"/>
  23. ……
  24.     <Matrix tx="4g4" ty="vvg"/>
  25. ……
  26.     <Matrix tx="5h5f" ty="787"/>
  27. ……
  28. */
复制代码
 楼主| 发表于 2016-4-2 20:17:04 | 显示全部楼层
本帖最后由 pcl_test 于 2016-4-2 22:22 编辑

回复 2# happy886rr
@echo off
(set /p 1-=&set /p -1=)<2号.txt
(set /p 2-=&set /p -2=)<3号.txt
(for /l %%i in (1 1 7) do (
        set/p %%i=
        setlocal enabledelayedexpansion
        for /l %%i in (1 1 50) do (set #= !#!)
        if %%i equ 3 (
                echo !#!^<Matrix tx="!1-!" ty="!-1!"/^>
        ) else (
                if %%i equ 7 (
                        echo !#!^<Matrix tx="!2-!" ty="!-2!"/^>
                ) else (
                        echo;!%%i!
                )
        )
        endlocal
))<1号.xml>$
move $ 1号.xml

大神帮忙看看,为什么写入1号.xml文件,会出现乱码,不能用了,。
是不是缺了什么代码,我是新手,指点一下

评分

参与人数 1PB -2 收起 理由
pcl_test -2 勿重复贴码

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 12:05 , Processed in 0.022716 second(s), 10 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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