中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 07:20
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【已解决】for语句中使用set求助 查看 804 回复 4
楼 主 【已解决】for语句中使用set求助 发表于 2007-09-21 17:25
新手上路
积分 11
发帖 5
注册 2007-06-08 14:48
19年会员
UID 90667
性别 男
状态 离线
有一个难题,解决不了,特来向大家求助,谢谢援手,代码如下:

@echo off & setlocal enabledelayedexpansion
set pstring=abcdefghijklmn
set key_sum=3

for /l %%i in (1,1,%key_sum%) do (
echo 输入key%%i值
set /p key%%i=
set /p cstr=!key%%i!-2
set /a keycstr%%i=!cstring:~%cstr%!,2!
echo !keycstr%%i!,!
)

本意是显示pstring中自己指定位置起2个字符,但运行错误,经测试,是这个语句错了
 set /a keycstr%%i=!cstring:~%cstr%,2! 

用了for语句,%cstr%表明不了变量了,请问高手,这里该怎么写?十分感谢

[ Last edited by moochat on 2007-9-25 at 06:31 PM ]
2 发表于 2007-09-21 17:54 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
@echo off & setlocal enabledelayedexpansion
set pstring=abcdefghijklmn
set key_sum=3

for /l %%i in (1,1,%key_sum%) do (
set /p key%%i=输入key%%i值
set /a key%%i-=1
call echo %%pstring:~!key%%i!,2%%
)
pause
3 发表于 2007-09-25 18:30 ·  中国 四川 绵阳 电信
新手上路
积分 11
发帖 5
注册 2007-06-08 14:48
19年会员
UID 90667
性别 男
状态 离线
谢谢斑竹
4 发表于 2008-01-18 10:59 ·  中国 河北 秦皇岛 联通
新手上路
积分 9
发帖 5
注册 2008-01-17 08:46
18年会员
UID 108814
性别 男
状态 离线
第四行,不如改成 for /l %%i in (1,1,%key_sum%-1) do ( 这样也行。
5 发表于 2008-01-22 12:40 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
楼主的这个东西还蛮好玩的嘛
论坛跳转: