中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 09:22
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 字符串批量运算替换的问题 查看 1,506 回复 4
楼 主 字符串批量运算替换的问题 发表于 2006-04-06 06:45 ·  中国 福建 厦门 电信
系统支持
★★★
积分 904
发帖 339
注册 2002-10-10 00:00
UID 1904
来自 厦门
状态 离线
最近遇一问题. 用 全能字符串批量替换 V6.0以上版本也未能实现 , 想到用批处理看看.结果未遂...发出来请教斑竹及知情者,先谢了.

将下面文本里的 , , , .... 全部换成 ,,,,.....,既 中括号里的数字统一加了某个数字.
	

ImgFileName="pic2/806.jpg";
Scale=100;
PhotoWidth=450;
PhotoHeight=620;;
TransEffects="";

ImgFileName="pic2/807.jpg";
Scale=100;
PhotoWidth=450;
PhotoHeight=620;;
TransEffects="";

ImgFileName="pic2/808.jpg";
Scale=100;
PhotoWidth=450;
PhotoHeight=620;;
TransEffects="";

ImgFileName="pic2/809.jpg";
Scale=100;
PhotoWidth=580;
PhotoHeight=445;
TransEffects="";

...........................


用批处理处理成:


	

ImgFileName="pic2/806.jpg";
Scale=100;
PhotoWidth=450;
PhotoHeight=620;;
TransEffects="";

ImgFileName="pic2/807.jpg";
Scale=100;
PhotoWidth=450;
PhotoHeight=620;;
TransEffects="";

ImgFileName="pic2/808.jpg";
Scale=100;
PhotoWidth=450;
PhotoHeight=620;;
TransEffects="";

ImgFileName="pic2/809.jpg";
Scale=100;
PhotoWidth=580;
PhotoHeight=445;
TransEffects="";

...........................


大家给个方法 或讨论一下吧.
2 发表于 2006-04-06 10:33 ·  中国 重庆 巴南区 电信
高级用户
★★
积分 772
发帖 273
注册 2004-10-23 00:00
UID 32861
性别 男
状态 离线
change就行了
http://www.msfans.net/bbs/
3 发表于 2006-04-06 18:39 ·  中国 福建 泉州 电信
银牌会员
★★★
积分 1,276
发帖 469
注册 2002-12-23 13:00
UID 586
性别 男
来自 福建泉州
状态 离线
将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%%k>>b.txt
) else echo. %%i%%j%%k>>b.txt
)

QQ:366840202
http://chenall.net
4 发表于 2006-04-06 21:44 ·  中国 辽宁 锦州 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
愿意尝试的话用 AWK 试一下,
AWK 下载地址: http://www.cs.bell-labs.com/cm/cs/who/bwk/awk95.exe

awk -F"\n" "{sub(/\+\]/,\"\")-index($0,\"\");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

5 发表于 2006-04-07 00:29 ·  中国 福建 厦门 电信
系统支持
★★★
积分 904
发帖 339
注册 2002-10-10 00:00
UID 1904
来自 厦门
状态 离线
多谢上面几位仁兄的帮助,我最终使用的方法是 无奈何 所提供的AWK方法.

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

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