Board logo

标题: [文件操作] [已解决]调用开启延迟变量的批处理是否会使该批处理开启延迟变量 [打印本页]

作者: hxf0759    时间: 2009-6-25 16:53     标题: [已解决]调用开启延迟变量的批处理是否会使该批处理开启延迟变量

问题一
现在我有2个批处理,名字为a.bat和b.bat
b.bat的开头开启了变量延迟
  1. setlocal enabledelayedexpansion
复制代码
a.bat中的内容是
call "b.bat"
但是a.bat中如果开启变量延迟就会导致运行出错,我想知道在a.bat中调用b.bat是否会导致a.bat开启变量延迟

问题二
我通过
  1. if exist %updatefailedpath%\lib\sp\*.tmp
复制代码
来判断该文件夹下是否有tmp文件,现在我想知道该文件夹及其子文件夹中是否有tmp文件,不知应如何实现

望指教,不胜感激!

[ 本帖最后由 hxf0759 于 2009-7-4 17:59 编辑 ]
作者: hxf0759    时间: 2009-7-1 08:49     标题: 有谁能指点一下么

有谁能指点一下么,感激不尽!
作者: keen    时间: 2009-7-1 10:39     标题: 回复 1楼 的帖子

对于你的问题一,我想你完全可以自己做个实践,自己编造a.bat和b.bat文件进行试验,试验完后就可以知道结果。

对于问题二,可以用for /r参数:
  1. @echo off
  2. for /r %updatefailedpath%\lib\sp %%i in (*.tmp) do echo %%i
  3. pause
复制代码

作者: hxf0759    时间: 2009-7-2 15:22

原帖由 keen 于 2009-7-1 10:39 发表
对于你的问题一,我想你完全可以自己做个实践,自己编造a.bat和b.bat文件进行试验,试验完后就可以知道结果。

对于问题二,可以用for /r参数:@echo off
for /r %updatefailedpath%\lib\sp %%i in (*.tmp) do ec ...


请问keen我测试的好像是不会开启变量延迟,但是我不能确定,还有我的系统是windows2003 server不知道这个在XP和2000系统中是否会有不同
作者: keen    时间: 2009-7-2 17:26     标题: 回复 4楼 的帖子

我也测试了,应该是不会开启变量延迟。
应该不会随着系统改变而改变,没有测试过,你可以装个虚拟机,测试一下。
作者: zhouyongjun    时间: 2009-7-2 19:55

不可以,在P内调用标签也不可以。
作者: zqz0012005    时间: 2009-7-3 09:42

看命令帮助嘛。。。

setlocal /?
开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后
所做的环境改动只限于批处理文件。要还原原先的设置,必须执
行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个
尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。


作者: lvsehuaxue    时间: 2010-9-25 17:50     标题: 我的测试都可以

两种情况都可以啊!我的系统是win7




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