中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 字符串批量运算替换的问题 上一主题 | 下一主题
autoit
系统支持




积分 904
发帖 339
注册 2002-10-10
来自 厦门
状态 离线
『楼 主』:  字符串批量运算替换的问题

最近遇一问题. 用 全能字符串批量替换 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]="";

               ...........................
大家给个方法 或讨论一下吧.



joomla! Autoit!
2006-4-6 06:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chenhui530
高级用户





积分 772
发帖 273
注册 2004-10-23
状态 离线
『第 2 楼』:  

change就行了



http://www.msfans.net/bbs/
2006-4-6 10:33
查看资料  发送邮件  发短消息 网志  OICQ (77740821)  编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 3 楼』:  

将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
)
       




QQ:366840202
http://chenall.net
2006-4-6 18:39
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 4 楼』:  

愿意尝试的话用 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




  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2006-4-6 21:44
查看资料  发送邮件  发短消息 网志  OICQ (105400208)  编辑帖子  回复  引用回复
autoit
系统支持




积分 904
发帖 339
注册 2002-10-10
来自 厦门
状态 离线
『第 5 楼』:  

多谢上面几位仁兄的帮助,我最终使用的方法是  无奈何 所提供的AWK方法.

只是后面加了" >test1.txt"重新输出.

虽然这次更改没能用上,不过还是很是感激. 谢谢了.



joomla! Autoit!
2006-4-7 00:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: