标题: [问题求助] [已解决]VBS脚本循环搜索X盘目录的某文件为什么不会自动终止? [打印本页]
作者: samsinn 时间: 2012-1-14 14:42 标题: [已解决]VBS脚本循环搜索X盘目录的某文件为什么不会自动终止?
这段脚本是循环搜索E盘第一层目录的一个文件,直到文件找到后删除而终止,但是它执行后为什么不会自动终止呢?我知道在sub f()中加入WSCRIPT.QUIT可以退出脚本,但我不想退出脚本,而是继续执行脚本其他命令,请问要如何修改呢?- set ws=createobject("wscript.shell")
- set fso=createobject("scripting.filesystemobject")
-
- wc="aa.exe"
- pth="e:\"
-
- while true
- d pth
- wscript.sleep 1000
- wend
- sub d(x)
- for each i in fso.getfolder(x).subfolders
- f i
- next
- end sub
-
- sub f(x)
- for each c in fso.getfolder(x).files
- if instr(1,c,wc,1)>0 then
- fso.deleteFile c
- msgbox "ok"
- end if
- next
- end sub
复制代码
作者: broly 时间: 2012-1-14 15:31
加一句exit sub
作者: samsinn 时间: 2012-1-14 15:45
回复 2# broly
谢谢版主的回复,请问是这样添加吗?- sub f(x)
- for each c in fso.getfolder(x).files
- if instr(1,c,wc,1)>0 then
- fso.deleteFile c
- msgbox "ok"
- exit sub
- end if
- next
- end sub
复制代码
但我测试之后,脚本依旧在执行"d pth"命令,还是没有终止
作者: broly 时间: 2012-1-14 16:03
你那个是无限循环来的- while true
-
- d pth
-
- wscript.sleep 1000
-
- wend
复制代码
这里要改。- set ws=createobject("wscript.shell")
- set fso=createobject("scripting.filesystemobject")
-
- wc="aa.exe"
- pth="e:\"
-
- d pth
- wscript.sleep 1000
-
- sub d(x)
- for each i in fso.getfolder(x).subfolders
- f i
- next
- end sub
-
- sub f(x)
- for each c in fso.getfolder(x).files
- if instr(1,c,wc,1)>0 then
- fso.deleteFile c
- msgbox "ok"
- end if
- next
- end sub
复制代码
作者: samsinn 时间: 2012-1-14 16:18
本帖最后由 samsinn 于 2012-1-15 11:20 编辑
其实我的意思是想弄个监视文件创建后删除并继续其他命令的脚本,我就是不知道要如何改才能不死循环- Set Fso = CreateObject("scripting.filesystemobject")
- Set Folder = Fso.GetFolder("e:\")
- set SubFolders = Folder.SubFolders
- do
- For Each SubFolder In SubFolders
- xf = SubFolder&"\xxx.txt"
- If Fso.FileExists(xf) then
- Fso.DeleteFile xf, True
- exit do
- End If
- Next
- wscript.sleep 100
- loop
复制代码
自己找到答案:不使用SUB执行递归的方式,在条件符合后利用exit do跳过即可。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |