标题: [其他] [已解决]批处理不用CALL能不能实现变量嵌套? [打印本页]
作者: zljzsmzzx 时间: 2009-6-27 00:11 标题: [已解决]批处理不用CALL能不能实现变量嵌套?
请看下面这个代码。- @echo off
- :a
- set a=abcdefghijklmnopqrstuvwxyz
- set/a b=%random%%%26
- call echo %%a:~%b%,1%%
- pause>nul&goto a
复制代码
该批处理是随机显示变量a中的一个字符。代码中用了CALL的变量嵌套。我现在想问的是,如果“call echo %%a:~%b%,1%%”这一句不准用CALL而只能直接用ECHO能不能达到同样的效果?请高人指点。
[ 本帖最后由 zljzsmzzx 于 2009-6-27 00:55 编辑 ]
作者: 随风 时间: 2009-6-27 00:13
除了开启变量延迟,似乎没有其它办法。
作者: defanive 时间: 2009-6-27 00:13
论坛搜索“变量延迟”
(发现Batcher这招很好用)
作者: zljzsmzzx 时间: 2009-6-27 00:36 标题: 回复 2楼 的帖子
谢谢随风大哥。明白了。- @echo off&setlocal enabledelayedexpansion
- :a
- set a=abcdefghijklmnopqrstuvwxyz
- set/a b=%random%%%26
- echo !a:~%b%,1!
- pause>nul&goto a
复制代码
另外还有一个问题,这两种用法哪种更有效率呢?
作者: Batcher 时间: 2009-6-27 00:43 标题: 回复 4楼 的帖子
论坛有不少关于效率的讨论帖。
通常情况下,能不用call就不用吧。
作者: 随风 时间: 2009-6-27 00:44
当然是开启变量延迟,call 会影响效率,
参考 http://bbs.bathome.net/thread-4831-1-1.html
作者: zljzsmzzx 时间: 2009-6-27 00:55
再次感谢。对“变量嵌套”用法又进了一步。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |