中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 06:55
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 文本替换问题:把所有在偶数位置的a换成b
可打印版本  1,351 / 8
第1楼 pusofalse 发表于 2008-04-24 16:53
银牌会员 发帖 646 积分 1,604
文本替换问题:把所有在偶数位置的a换成b
a.txt
aaaaaaaaaaaaa

输出为
ababababababab

即 把所有在偶数位置的a换成b~

───────────────── 版务记录 ─────────────────
执行:HAT
操作:在帖子标题中增加搜索关键字
说明:原标题"文本替换问题"不利于论坛搜索
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-10-20 at 09:58 ]
第2楼 huahua0919 发表于 2008-04-24 16:58
银牌会员 发帖 780 积分 1,608
第3楼 pusofalse 发表于 2008-04-24 17:07
银牌会员 发帖 646 积分 1,604
Originally posted by huahua0919 at 2008-4-24 04:58 PM:

谢谢。。
原来就这么简单~ 想了很长时间的问题,看来是我想的太复杂了~
第4楼 terse 发表于 2008-04-24 17:19
银牌会员 发帖 946 积分 2,404
如偶数位不是a 就替换不了啊
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
set "str=%%i"
call :lp
)
pause
goto :eof
:lp
set str1=!str:~%n%,1!
if defined str1 set/a n+=2&set str2=!str2!!str1!b&goto lp
set n=&echo !str2!
set str2=

[ Last edited by terse on 2008-4-24 at 05:21 PM ]
第5楼 slore 发表于 2008-04-24 20:54
铂金会员 发帖 2,478 积分 5,212
那你给的测试数据有问题……
第6楼 bat-zw 发表于 2008-04-24 23:28
金牌会员 发帖 1,276 积分 3,105
也来一个:
文本输出问题,我最喜欢,也来凑个热闹了(考虑通用性哈):


[ Last edited by zw19750516 on 2008-4-24 at 11:31 PM ]
第7楼 bat-zw 发表于 2008-04-24 23:51
金牌会员 发帖 1,276 积分 3,105
晕,上面还是没考虑到字符总数是奇数时会多一个b的情况,修改如下:
第8楼 26933062 发表于 2008-04-25 00:53
银牌会员 发帖 879 积分 2,268
通用加效率
第9楼 26933062 发表于 2008-04-25 01:10
银牌会员 发帖 879 积分 2,268
考虑奇数行
:
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023