![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 15:38 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 用了两次call,变量怎么没了??? |
| 可打印版本 642 / 3 |
| 第1楼 xuleicz | 发表于 2009-03-20 00:55 |
| 初级用户 发帖 26 积分 26 | |
|
用了两次call,变量怎么没了??? 代码如下:
为什么前两个%M%显示出来了,第三个却是空值,大家帮忙看下,谢谢了! [ Last edited by xuleicz on 2009-3-20 at 00:58 ] |
|
| 第2楼 xuleicz | 发表于 2009-03-20 01:07 |
| 初级用户 发帖 26 积分 26 | |
|
谢谢LS的,可以了,但是我的为什么不行呢,能否麻烦解释下呢?
2楼怎么没了?????? [ Last edited by xuleicz on 2009-3-20 at 01:11 ] |
|
| 第3楼 DwD | 发表于 2009-03-20 01:11 |
| 新手上路 发帖 15 积分 12 | |
|
@echo off
call :A echo m1:%M% pause :A if 1==1 ( setlocal enabledelayedexpansion set N=abc call :B !N! echo m2:!M! rem endlocal goto :eof ) :B set M=%1 echo m3:%M% goto :eof OK了,我把你的endlocal rem 掉了,你把延迟变量结束掉了,还怎么返回M1那里啊。 |
|
| 第4楼 xuleicz | 发表于 2009-03-20 02:05 |
| 初级用户 发帖 26 积分 26 | |
|
DwD,你rem掉endlocal还是不行啊,只有在开头就用setlocal才行。
似乎setlocal放在括号或标签里都不能达到要求!只能放开头? |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |