中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-04 20:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]set问题:以数字开头的变量无效 查看 836 回复 3
楼 主 [已结]set问题:以数字开头的变量无效 发表于 2008-12-24 11:28 ·  中国 江苏 扬州 电信
初级用户
积分 28
发帖 20
注册 2008-12-04 19:57
17年会员
UID 132895
性别 男
状态 离线
@echo off
set 2dd=121
set dd=1212
echo 2dd=%2dd%
echo dd=%dd%
pause


结果:
2dd=dd
dd=1212


为什么2dd无效???

[ Last edited by HAT on 2008-12-24 at 13:13 ]
2 发表于 2008-12-24 11:45 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
%2dd% 变成了三部分:参数 %2 没有定义被替换为空,单个 % 号被去掉。

可开启变量延迟来避免以上情况:

setlocal EnableDelayedExpansion
echo !2dd!
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT +2 2008-12-24 13:14
3 发表于 2008-12-24 11:46 ·  中国 江苏 扬州 电信
初级用户
积分 28
发帖 20
注册 2008-12-04 19:57
17年会员
UID 132895
性别 男
状态 离线
谢谢!
谢谢
4 发表于 2008-12-24 18:19 ·  中国 广东 深圳 电信
初级用户
★★
游手好闲 + 无所事事 ..
积分 194
发帖 167
注册 2007-04-30 09:43
19年会员
UID 87022
性别 男
状态 离线
我个人理解%1到%9一般都是用来做参数的,比如你写了个批处理
test.bat
内容如下:
dir /%1 %2


那么你试一下执行 test.bat b d:
就相当于执行了 dir /b d:
其中的 %1 和 %2 分别被替换为 b 和d: 了

[ Last edited by exzzz on 2008-12-24 at 18:20 ]
论坛跳转: