标题: [代码合集] [已解决]请教批处理变量嵌套为何不能显示? [打印本页]
作者: a262615704 时间: 2011-10-9 19:37 标题: [已解决]请教批处理变量嵌套为何不能显示?
本帖最后由 a262615704 于 2011-10-9 21:53 编辑
- set value=50
- set vol!value!=500
- echo !vol!value!
复制代码
为什么不能显示500?
作者: bingxing8000 时间: 2011-10-9 19:45
因为你只对变量赋值,而没有调用变量
把 echo !vol!value! 改为 echo %vol!value!% 试一下
作者: awk 时间: 2011-10-9 20:08
- @echo off
- setlocal enabledelayedexpansion
- set value=50
- set vol%value%=500
- echo !vol%value%!
- pause
复制代码
作者: zaixinxiangnian 时间: 2011-10-9 20:16
我也试了不行。难到和!有关。可是没有检测到啊
作者: a262615704 时间: 2011-10-9 20:28
回复 3# awk
都不行哦,奇怪!
作者: CrLf 时间: 2011-10-9 20:52
不可能,3 楼代码是正确的,除非你还有关键的背景条件没说,比如代码是否位于语块中…
一般来说,一句语句中同级的变量只会被解释一次,%str% 最早被解释(语块预处理阶段),之后才在语块内部的每条语句执行前解释 !var!。所以不应该用 !str!var!! 或者 %str!var!%,而应该用 !str%var%!,写前要想下 cmd 会怎么理解这段代码,否则很难保证成功率。
作者: a262615704 时间: 2011-10-9 21:06
回复 6# CrLf
测试3楼正确! 请问在dos下有什么什么软件让for /f 和for /v 命令正常运行的?
作者: CrLf 时间: 2011-10-9 22:01
dos 下没有那些拓展功能…
楼主的代码如果是在 dos 下运行,可以用 call echo %%vol%value%%% 实现变量嵌套
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |