标题: [文件操作] [已解决]调用开启延迟变量的批处理是否会使该批处理开启延迟变量 [打印本页]
作者: hxf0759 时间: 2009-6-25 16:53 标题: [已解决]调用开启延迟变量的批处理是否会使该批处理开启延迟变量
问题一
现在我有2个批处理,名字为a.bat和b.bat
b.bat的开头开启了变量延迟- setlocal enabledelayedexpansion
复制代码
a.bat中的内容是
call "b.bat"
但是a.bat中如果开启变量延迟就会导致运行出错,我想知道在a.bat中调用b.bat是否会导致a.bat开启变量延迟
问题二
我通过- 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参数:- @echo off
- for /r %updatefailedpath%\lib\sp %%i in (*.tmp) do echo %%i
- 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://www.bathome.net/) |
Powered by Discuz! 7.2 |