[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]批处理不用CALL能不能实现变量嵌套?

请看下面这个代码。
  1. @echo off
  2. :a
  3. set a=abcdefghijklmnopqrstuvwxyz
  4. set/a b=%random%%%26
  5. call echo %%a:~%b%,1%%
  6. pause>nul&goto a
复制代码
该批处理是随机显示变量a中的一个字符。代码中用了CALL的变量嵌套。我现在想问的是,如果“call echo %%a:~%b%,1%%”这一句不准用CALL而只能直接用ECHO能不能达到同样的效果?请高人指点。

[ 本帖最后由 zljzsmzzx 于 2009-6-27 00:55 编辑 ]
1

评分人数

    • pusofalse: 感谢主动给标题加[已解决]字样。PB + 2

除了开启变量延迟,似乎没有其它办法。
技术问题请到论坛发帖求助!

TOP

论坛搜索“变量延迟”
(发现Batcher这招很好用)
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

回复 2楼 的帖子

谢谢随风大哥。明白了。
  1. @echo off&setlocal enabledelayedexpansion
  2. :a
  3. set a=abcdefghijklmnopqrstuvwxyz
  4. set/a b=%random%%%26
  5. echo !a:~%b%,1!
  6. pause>nul&goto a
复制代码
另外还有一个问题,这两种用法哪种更有效率呢?

TOP

回复 4楼 的帖子

论坛有不少关于效率的讨论帖。
通常情况下,能不用call就不用吧。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

当然是开启变量延迟,call 会影响效率,
参考 http://bbs.bathome.net/thread-4831-1-1.html
技术问题请到论坛发帖求助!

TOP

再次感谢。对“变量嵌套”用法又进了一步。

TOP

返回列表