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

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

批处理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 "/>

  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

评分人数

TOP

貌似以后用的着啊,不过我想要的是批量处理的,而且2号文本和3号文本是log的

TOP

谢谢    作者happy886rr,我用你的代码扩展4号文件到6号文件。没成功,能否增加以下注解,说明。

TOP

回复 4# mingjianko
抱歉,我只解决你在贴中提到的1、2、3号文件。至于其他文件,你提问时也没交代清楚。

TOP

你上面的代码能扩展吗

TOP

@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



这个是我照着你的扩展的。我是新手,没成功。失败了。哭。我错在哪里了。指点一下

TOP

非常谢谢    作者happy886rr,谢谢你的帮助,我知道自己错在哪了,

在此万分的感谢【作者happy886rr】

TOP

晕,。扩展到第5个文件,有失败了,哭了

TOP

本帖最后由 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. */
复制代码

TOP

本帖最后由 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文件,会出现乱码,不能用了,。
是不是缺了什么代码,我是新手,指点一下
1

评分人数

TOP

返回列表