标题: 字符串批量运算替换的问题
[打印本页]
作者: autoit
时间: 2006-4-6 06:45
标题: 字符串批量运算替换的问题
最近遇一问题. 用 全能字符串批量替换 V6.0以上版本也未能实现 , 想到用批处理看看.结果未遂...发出来请教斑竹及知情者,先谢了.
将下面文本里的[1] ,[2] ,[3] , [4] .... [1000]全部换成 [50],[51],[52],[53],.....[1049],既 中括号里的数字统一加了某个数字.
ImgFileName[1]="pic2/806.jpg";
Scale[1]=100;
PhotoWidth[1]=450;
PhotoHeight[1]=620;;
TransEffects[1]="";
ImgFileName[2]="pic2/807.jpg";
Scale[2]=100;
PhotoWidth[2]=450;
PhotoHeight[2]=620;;
TransEffects[2]="";
ImgFileName[3]="pic2/808.jpg";
Scale[3]=100;
PhotoWidth[3]=450;
PhotoHeight[3]=620;;
TransEffects[3]="";
ImgFileName[4]="pic2/809.jpg";
Scale[4]=100;
PhotoWidth[4]=580;
PhotoHeight[4]=445;
TransEffects[4]="";
...........................
用批处理处理成:
ImgFileName[50]="pic2/806.jpg";
Scale[50]=100;
PhotoWidth[50]=450;
PhotoHeight[50]=620;;
TransEffects[50]="";
ImgFileName[51]="pic2/807.jpg";
Scale[51]=100;
PhotoWidth[51]=450;
PhotoHeight[51]=620;;
TransEffects[51]="";
ImgFileName[52]="pic2/808.jpg";
Scale[52]=100;
PhotoWidth[52]=450;
PhotoHeight[52]=620;;
TransEffects[52]="";
ImgFileName[53]="pic2/809.jpg";
Scale[53]=100;
PhotoWidth[53]=580;
PhotoHeight[53]=445;
TransEffects[53]="";
...........................
大家给个方法 或讨论一下吧.
作者: chenhui530
时间: 2006-4-6 10:33
change就行了
作者: chenall
时间: 2006-4-6 18:39
将a.txt替换成原文件,将B.txt替换成最后生成的文件
不知能否达到你的要求.这个没办法处理空行,即运行后所有的空行将会删掉
@echo off
setlocal EnableDelayedExpansion
for /f "usebackq tokens=1,2,3* delims=[]" %%i in (a.txt) do (
if not "%%j"=="" (
set a=%%j
set /a a=!a!+49
echo %%i[!a!]%%k>>b.txt
) else echo. %%i%%j%%k>>b.txt
)
作者: 无奈何
时间: 2006-4-6 21:44
愿意尝试的话用 AWK 试一下,
AWK 下载地址: http://www.cs.bell-labs.com/cm/cs/who/bwk/awk95.exe
awk -F"\n" "{sub(/\[[0-9]+\]/,\"[\" substr($0,index($0,\"[\")+1,index($0,\"]\")-index($0,\"[\")-1)+49 \"]\");print}" test.txt
作者: autoit
时间: 2006-4-7 00:29
多谢上面几位仁兄的帮助,我最终使用的方法是 无奈何 所提供的AWK方法.
只是后面加了" >test1.txt"重新输出.
虽然这次更改没能用上,不过还是很是感激. 谢谢了.