![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 05:40 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » for循环为什么只显示echo的状态? |
| 可打印版本 1,730 / 6 |
| 第1楼 pcl83 | 发表于 2006-10-03 09:44 |
| 初级用户 发帖 13 积分 32 | |
|
for循环为什么只显示echo的状态? 请看以下代码(批处理文件中):
------------------------------------------- @echo off FOR /L %%i in (1,1,3) do ( set /a T=%% echo %T%) pause>nul -------------------------------------------- 程序运行之后并没有我们预测的那样出现 1 2 3 而是: ECHO 处于关闭状态。 ........ 究竟怎么回事,有什么解决办法? ──────────────── 版务记录 ──────────────── 执行:namejm 原标题:高手速来帮忙 现标题:for循环为什么只显示echo的状态? 说明:因原标题过于模糊,不便于论坛的搜索和管理,在版主提示发表三日 之后,楼主尚未更改标题,现由本人代无奈何版主强制修改标题,并 扣除楼主4点积分(因为论坛积分规则有变,酌情减轻了处罚)。 ──────────────── 版务记录 ──────────────── [ Last edited by namejm on 2006-10-19 at 01:09 ] |
|
| 第2楼 pengfei | 发表于 2006-10-03 09:47 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
这是变量延迟的问题, 另外发现楼主的代码写错了, set /a T=%%
代码修改如下: |
|
| 第3楼 pcl83 | 发表于 2006-10-03 09:53 |
| 初级用户 发帖 13 积分 32 | |
|
谢谢,无尽感激
|
|
| 第4楼 KIKOOOO | 发表于 2006-10-03 10:01 |
| 初级用户 发帖 12 积分 34 | |
|
这里为什么要用!T!
不能用%T% ? |
|
| 第5楼 pengfei | 发表于 2006-10-03 10:14 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
这牵涉到环境变量延迟的问题, 像这样的复合语句, cmd会对语句中的变量进行预处理. 这样for语句中的%T%就会被替换. 而%T%这个变量在for之前没有定义, 所以echo %T%显示echo 处于关闭状态.
开启延缓的环境变量, 就是不让cmd对复合语句中的环境变量进行预先处理. 从而使T这个变量能够正常地显示. 因为开启了环境变量, 所以要把 % 改成 ! ... |
|
| 第6楼 无奈何 | 发表于 2006-10-03 10:51 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃▓ 中国DOS联盟 >> 批处理室版务管理 _ □ ×┃ ┠──────────────────────────────┬┨ ┃Microsoft Windows XP │┃ ┃(C) 版权所有 1985-2001 Microsoft Corp. │┃ ┃ │┃ ┃C:\无奈何>版务管理.cmd │┃ ┃ │┃ ┃ 版主提示 │┃ ┃为了便于论坛用户浏览和版主管理,请您修改本主题的标题,以简要│┃ ┃叙述主题的内容或意图如果您确认标题不需要修改,请继续回复该主│┃ ┃题进行申辩,若申辩理由充分,将取消该通知如果您确认标题需要修│┃ ┃改,请点击该主题首帖下方"编辑"按钮,在编辑页面中修改标题栏│┃ ┃如果此通知发出三日后您仍未进行申诉或修改,将由版主进行修改,│┃ ┃并对作者进行相应处罚处罚为扣除8点积分,包括追回您因发表主题│┃ ┃奖励的6分和因标题违规而惩罚性扣除的2分在得知您做出积极恰当│┃ ┃的回应后,版主将在三个工作日内删除本提示以消除对您的不利影响│┃ ┃ │┃ ┃C:\无奈何>▂ │┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷┛ |
|
| 第7楼 不得不爱 | 发表于 2006-10-03 21:58 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
下面是不用!T!的!
[ Last edited by qwe1234567 on 2006-10-3 at 22:05 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |