Board logo

标题: [其他] 批处理如何使用call延迟变量? [打印本页]

作者: novaa    时间: 2007-11-16 21:06     标题: 批处理如何使用call延迟变量?

看帖子的时候发现call也可以延迟变量下面分别是两个延迟变量的方式
方式一
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set num=0
  4. for /l %%a in (1 1 7) do (
  5. set /a num+=1
  6. echo !num!
  7. )
  8. pause
复制代码

方式二
  1. @echo off
  2. set a=0
  3. for /l %%i in (1 1 7) do set /a a+=1 & call echo %%a%%
  4. pause>nul
复制代码

第一种方法基本明白了
第二种利用CALL的老手能否讲解一下
作者: novaa    时间: 2007-12-23 15:06

在执行莫些文本操作得时候。当必须使用变量延迟时,如果用setlocal enabledelayedexpansion 。那么要处理得文本中的!将会置空。所以这个时候用CALL延迟。
只是个人看法。
作者: youxi01    时间: 2007-12-23 16:37

还不够全
还有些情况是因为, !!不能嵌套使用




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