中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: 如此截取变量为什么会出错 上一主题 | 下一主题
hnlcc
新手上路





积分 12
发帖 5
注册 2006-11-13
状态 离线
『楼 主』:  如此截取变量为什么会出错

请问这个要如何实现?本意是想生成一个个的等腰三角形(竖着的),但是在delay2中对var进行截取的时候老是显示不出来,我刚学习批处理,请高手指教 一下,这个问题困惑了很久 以下就是代码了 ================================================== @echo off echo =================================== echo time color echo =================================== set /a i=1 set var= :delay1 set var=%var%★ echo %var% set /a i+=1 ping /n 1 127.0>nul if %i%==20 (goto delay2) else goto delay1 :delay2 set var=%%var:~1,-%i%% @echo %var% set /a i-=1 ping /n 1 127.0>nul if %i%==1 (set var=&goto delay1) else goto delay2 :end pause ================================================ [ Last edited by bjsh on 2007-7-31 at 12:44 AM ]


2007-7-12 23:38
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 2 楼』:  

:delay2 set var=%%var:~1,-%i%% @echo %var%
改为
:delay2 set var=%var:~1,20% echo.%var%
[ Last edited by bjsh on 2007-7-13 at 12:23 AM ]


2007-7-13 00:22
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
hnlcc
新手上路





积分 12
发帖 5
注册 2006-11-13
状态 离线
『第 3 楼』:  

谢谢班班,这个是可以的,我还想问一下当我在做下面这个 ============================== set /a i=1 set var=abcdefg :delay set /a i+=1 set var=%var:~1,%i%% echo var if i == 5 (goto :delay) else goto eof ============================== 做这个的时候老是会出错误,不是打出b bc bcd .....这样的序列,而是直接把%var:~1,%i%%这样的字符串打出来了,请问一下我要的功能如何实现呢?就是在i++的时候对var进行截取,我看过别人的程序,对%这个的用法还是不太清楚,高手给解释一下,谢谢


2007-7-13 22:43
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 4 楼』:  

你上面的的 程序除了 在逻辑上有错误; 语法上也有几处错误; 这个 echo var 应该为 echo %var% 吧; if i == 5 (goto :delay) else goto eof 这句在语法上 goto :eof ; 逻辑上 运行到此处直接 退出了 并不会 goto delay(一般goto到标签; 不在标签前面加冒号除了特殊的 eof; call 标签是加冒号的;) ================================ set var=%var:~1,%i%% 需要用 call set var=%%var:~1,%i%%% 可以参考下面的帖子 www.cn-dos.net/forum/viewthrea ... =================================== 或许得到的结果依然有一部分不是你想要的; 你需要好好理解 变量字符的截取; 看看 set /? 翻翻以前的帖子;


2007-7-14 00:53
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
hnlcc
新手上路





积分 12
发帖 5
注册 2006-11-13
状态 离线
『第 5 楼』:  

班班说的太对了,呵呵,上面那些逻辑和语法错误是意外,意外呵呵。谢谢啦~~


2007-7-14 13:49
查看资料  发短消息  网志   编辑帖子  回复  引用回复
luckydjc
新手上路




积分 4
发帖 2
注册 2007-7-25
状态 离线
『第 6 楼』:  

努力学习中....


2007-7-25 20:11
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

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


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



论坛跳转: