中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 14:01
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]关于替换指定位置字符的问题 查看 800 回复 5
楼 主 [求助]关于替换指定位置字符的问题 发表于 2009-03-06 15:36 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
如我有一字符串是随机的,a=asdmkuyk
我现在想把a的第三位d替换成8,替换后a=as8mkuyk,请问有什么办法可以指定位置替换,谢谢。
2 发表于 2009-03-07 00:23 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
set a=asdmkuyk

::先把指定位置的字符取出(第3位):
set b=%a:~2,1%

::再用得到的字符替换:
call set va=%%a:%b%=8%%

echo. %a%
echo. %b%
echo. %va%
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
wjcing +2 2009-03-07 05:26
精简
=> 个人网志
3 发表于 2009-03-07 01:49 ·  中国 山西 移动
初级用户
★★
积分 172
发帖 88
注册 2006-12-08 10:47
19年会员
UID 72923
性别 男
状态 离线
set a=备份\复件(2) winre\Program Files
如何由变量a得到变量b[变量b=Program Files]
当然变量a中“Program Files”前的路径不确定!
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
wjcing +2 2009-03-07 05:26
4 发表于 2009-03-07 02:46 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
Originally posted by netbenton at 2009-3-7 12:23 AM:
set a=asdmkuyk

::先把指定位置的字符取出(第3位):
set b=%a:~2,1%

::再用得到的字符替换:
call set va=%%a:%b%=8%%

echo. %a%
echo. %b%
echo. %va%
pause

谢谢,不过我觉得你的方法不行,因为如果set a=asddkuykd 是这样呢。。我只想把第三位的d替换,这个方法是不行的。
5 发表于 2009-03-07 02:50 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
Originally posted by XiaoGuDong at 2009-3-7 01:49 AM:
set a=备份\复件(2) winre\Program Files
如何由变量a得到变量b
当然变量a中“Program Files”前的路径不确定!

郁闷,,不明白。呵呵
6 发表于 2009-03-07 04:19 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
搞定了。 。找个折中的方法搞定了。。就是折成两个字符再合并,,不过还是希望有高手给个好点的方法。谢谢了。
论坛跳转: