Board logo

标题: [其他] 批处理变量延迟再扩展除了用for和call还有别的方法吗? [打印本页]

作者: HappyBirthday    时间: 2014-5-16 15:20     标题: 批处理变量延迟再扩展除了用for和call还有别的方法吗?

变量延迟再扩展除了用for和call还有别的方法吗?
就是setlocal enabledelayedexpansion后,对!!a!!再扩展。
作者: apang    时间: 2014-5-16 15:41

请给个具体实例,你的问题都很莫名其妙。
作者: CrLf    时间: 2014-5-16 16:01

  1. @echo off
  2. set a=b
  3. set b=c
  4. setlocal enabledelayedexpansion
  5. for %%z in (!a!) do echo !%%z!
  6. pause
复制代码
  1. @echo off
  2. set a=b
  3. set b=c
  4. cmd /v /c "echo ^!!a!^!"
  5. pause
复制代码

作者: HappyBirthday    时间: 2014-5-17 06:18

回复 3# CrLf


    第一个是for,说了是除了for的。第二个显示错误,是!b!不是c
作者: DAIC    时间: 2014-5-17 09:29

没有
作者: terse    时间: 2014-5-17 10:45

显示C的话 这样
  1. set a=b
  2. set b=c
  3. cmd /v /c echo !%a%!
复制代码

作者: CrLf    时间: 2014-5-17 20:06

for 有什么不妥吗?如果追求效率,那是最好的选择了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2