标题: [文本处理] 替换文本内容的批处理为什么有几行字不会打印出来? [打印本页]
作者: wqlhacker 时间: 2013-2-1 19:45 标题: 替换文本内容的批处理为什么有几行字不会打印出来?
这里是原始文本的其中一段- [V4+ Styles]
- Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
- Style: Default,方正粗圆_GBK,37,&H00FFFFFF,&HF0000000,&H00000000,&H8C000000,0,0,0,0,100,100,2,0,1,2,1,2,30,30,10,134
- Style: zhu,方正粗圆_GBK,25,&H00FFFFFF,&HF0000000,&H00000000,&HF0000000,0,0,0,0,100,100,0,0,1,2,0,8,30,30,10,134
- Style: jp op,方正准圆_GBK,24,&H14FFF1E6,&HF0000000,&H00905A0A,&HF0000000,-1,0,0,0,100,100,2,0,1,2,0,2,30,30,5,134
- Style: jp ed,方正准圆_GBK,23,&H00E8F3FF,&HF0000000,&H141257D8,&HF0000000,-1,0,0,0,100,100,1,0,1,2,0,2,30,30,5,134
- Style: LOGO,微软雅黑,25,&H00FFFFFF,&HFF000000,&H00000000,&HFF000000,-1,0,0,0,100,100,0,0,1,1,0,2,30,30,10,1
- Style: chaqu,イワタ太丸ゴシック,23,&H28FFFFEE,&HF0000000,&H46B4B429,&HF0000000,0,0,0,0,100,100,0,0,1,1,0,2,30,30,10,128
- Style: chaquzhong,方正准圆_GBK,22,&H32FFFFFF,&HF0000000,&H640F0F0F,&HF0000000,0,0,0,0,100,100,0,0,1,1,0,7,30,30,10,134
- Style: jp,イワタ太丸ゴシック,25,&H6FFFFFFF,&HF0000000,&H6F000000,&HF0000000,-1,0,0,0,100,100,0,0,1,2,0,2,30,30,10,1
- [Events]
复制代码
想用这个代码来替换文本里面的内容,其他内容都没问题,就上面那一段会莫名其妙的都消失了- for /f "delims=" %%i in (3.ass) do (
- set n=%%i
- call set n=%%n:xxxxxxxx=yyyyyyyyyy%%
- call echo %%n%%>>4.ass
- )
复制代码
用type来查看文本,貌似windows也能正确读取文本,不懂为什么会这样
作者: batman 时间: 2013-2-1 19:59
那是因为这些行列中有特殊字符&,要处理它就要开启变量延迟:- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (3.asss) do (
- set "str=%%i"
- echo !str:xxxxxxxx=yyyyyyyyyy!
- ))>4.asss
复制代码
作者: wqlhacker 时间: 2013-2-1 20:27
那是因为这些行列中有特殊字符&,要处理它就要开启变量延迟:
batman 发表于 2013-2-1 19:59
多谢巨巨!!
作者: wqlhacker 时间: 2013-2-1 20:58
俺学艺不太行啊,再来求教
按版主那样改之后 只能输入一条 替换命令,输入第二条之后就无效了,为什么
echo !str:xxxxxxxx=yyyyyyyyyy!
echo !str:xxxxxxxx=yyyyyyyyyy!(失效)
echo !str:xxxxxxxx=yyyyyyyyyy!(失效)
好像不能多输入几条,原来我那个代码是可以
call set n=%%n:xxxxxxxx=yyyyyyyyyy%%
call set n=%%n:xxxxxxxx=yyyyyyyyyy%%
call set n=%%n:xxxxxxxx=yyyyyyyyyy%%
这样多几条的
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |