![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 15:52 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 隐晦的set 3=10变量引用 |
| 可打印版本 1,014 / 6 |
| 第1楼 maky1117 | 发表于 2008-11-24 20:18 |
| 初级用户 发帖 11 积分 24 | |
|
隐晦的set 3=10变量引用 引用变量的方法大家应该耳熟能详了吧
set a=10 引用a的方法就是用%% echo %a% 但是现在有个非典型例子,set 3=10,大家试试看? echo %3%? 错! echo %%3%%? 再错! ... 这回被惯性思维绊倒了吧? 答案是: setlocal EnableDelayedExpansion echo !3! 10! 呵呵,set不禁止用数字当作变量名,但引用起来就费点手指功夫多敲几个键啦 其实还真没有人想会用数字来作变量名 (台下:小子,你找抽!)![]() 好啦好啦,解释一下为什么echo %3%会错,原因是批处理对于数字敏感,%3%会优先作为%3考虑,因此在批处理中,数字扩展肯定是参数,而在命令行中,由于没有所谓的参数,数字扩展肯定是变量~呵呵 |
|
| 第2楼 s11ss | 发表于 2008-11-24 22:06 |
| 银牌会员 发帖 566 积分 2,098 | |
其实还真没有人想会用数字来作变量名 我原来用用负数作“变量名”的方法写过一个加密批处理的东东:) |
|
| 第3楼 ITU | 发表于 2008-11-24 23:35 |
| 中级用户 发帖 82 积分 209 | |
|
那么,在纯DOS下呢?
|
|
| 第4楼 pusofalse | 发表于 2008-11-25 01:45 |
| 银牌会员 发帖 646 积分 1,604 | |
|
被当作参数解释了吧~
%3%误解析成%3了~ |
|
| 第5楼 knoppix7 | 发表于 2008-11-25 19:33 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
某些编程语言带来的思维...变量名不能纯数字..
|
|
| 第6楼 luxipeng | 发表于 2008-12-01 21:28 |
| 初级用户 发帖 17 积分 20 | |
Originally posted by maky1117 at 2008-11-24 08:18 PM: 为什么我的就可以? ![]() |
|
| 第7楼 s11ss | 发表于 2008-12-01 21:47 |
| 银牌会员 发帖 566 积分 2,098 | |
|
在批处理中
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |