标题: [文本处理] 如何实现从一个文本读取内容并替换掉另一个文本的指定字符串? [打印本页]
作者: mingjianko 时间: 2016-4-1 13:01 标题: 如何实现从一个文本读取内容并替换掉另一个文本的指定字符串?
批处理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 "/>
作者: happy886rr 时间: 2016-4-1 14:07
- @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号.txt>$
- move $ 1号.txt
复制代码
回复 1# mingjianko
作者: xp3000 时间: 2016-4-1 14:47
貌似以后用的着啊,不过我想要的是批量处理的,而且2号文本和3号文本是log的
作者: mingjianko 时间: 2016-4-1 22:11
谢谢 作者happy886rr,我用你的代码扩展4号文件到6号文件。没成功,能否增加以下注解,说明。
作者: happy886rr 时间: 2016-4-1 22:28
回复 4# mingjianko
抱歉,我只解决你在贴中提到的1、2、3号文件。至于其他文件,你提问时也没交代清楚。
作者: mingjianko 时间: 2016-4-1 22:47
你上面的代码能扩展吗
作者: mingjianko 时间: 2016-4-1 22:48
@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
这个是我照着你的扩展的。我是新手,没成功。失败了。哭。我错在哪里了。指点一下
作者: mingjianko 时间: 2016-4-1 22:56
非常谢谢 作者happy886rr,谢谢你的帮助,我知道自己错在哪了,
在此万分的感谢【作者happy886rr】
作者: mingjianko 时间: 2016-4-1 23:19
晕,。扩展到第5个文件,有失败了,哭了
作者: pcl_test 时间: 2016-4-1 23:21
本帖最后由 pcl_test 于 2016-4-1 23:43 编辑
举个栗子- /*&cls
- @echo off
- more +21 "%~f0"|cscript -nologo -e:jscript "%~f0"
- pause&exit
- */
-
- var txt1 = 'a\r\n1'.split('\r\n'),
- txt2 = 'b\r\n2'.split('\r\n'),
- txt3 = 'c\r\n3'.split('\r\n'),
- txt4 = 'd\r\n4'.split('\r\n');
-
- var arr = txt1.concat(txt2, txt3, txt4);
-
- var txt = WScript.StdIn.ReadAll().replace(/([\s\S]+)\*\//,'$1');
- var retxt = txt.replace(
- /(<Matrix\stx=")([^"]*)("\sty=")([^"]*)("\s?\/>)/g,
- function($0,$1,$2,$3,$4,$5){return $1+arr.shift()+$3+arr.shift()+$5}
- )
- WSH.echo(retxt);
-
- /*
- ……
- <Matrix tx="fwef" ty="sdw"/>
- ……
- <Matrix tx="dsfd" ty="rge"/>
- ……
- <Matrix tx="4g4" ty="vvg"/>
- ……
- <Matrix tx="5h5f" ty="787"/>
- ……
- */
复制代码
作者: mingjianko 时间: 2016-4-2 20:17
本帖最后由 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文件,会出现乱码,不能用了,。
是不是缺了什么代码,我是新手,指点一下
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |