Board logo

标题: [问题求助] vbscript判断文件是否存在返回值不正确! [打印本页]

作者: baiyong    时间: 2012-4-16 12:59     标题: vbscript判断文件是否存在返回值不正确!

我在使用vbscript调用dos命令强力删除某个文件或文件夹后,再通过vbscript判断这个文件是否还存在,但是返回的结果有误,本身调用dos未能删掉这个文件,但是在判断的时候返回值却是这个文件已经不存在了,这是怎么回事?
求vbscript高手解答!如何处理?

还有如果这样判断不了的话,我该使用什么方法在删除文件之后,准确判断这个文件是否存在?

另外我还用SendKeys发送F5刷新了一下,然后又延迟了5秒钟,结果还是返回不存在!事实上文件时存在的。
说明一下我在删除这个文件之前修改了一下文件的权限

还有第一次删不掉后,第二次再来删,就好了,判断也是正确的。
作者: applba    时间: 2012-4-16 15:18

P处理命令可以自行判断。
作者: baiyong    时间: 2012-4-16 23:23

P处理命令可以自行判断。
applba 发表于 2012-4-16 15:18



那批处理判断如何得到返回值啊?我需要返回值做下一步操作!
作者: powerbat    时间: 2012-4-17 00:06

fso误判的问题我的也遇到过,可忘记了怎么解决的。
如果你一定要用cmd命令的话:
  1. set ws = CreateObject("WScript.Shell")
  2. set oExec = ws.Exec("cmd /c del /a/f 1.exe & if exist 1.exe (exit /b 1) else exit /b 0")
  3. do until oExec.Status=1 : WScript.sleep 100 : loop
  4. WScript.echo oExec.ExitCode
复制代码

作者: baiyong    时间: 2012-4-17 10:26

fso误判的问题我的也遇到过,可忘记了怎么解决的。
如果你一定要用cmd命令的话:
powerbat 发表于 2012-4-17 00:06



你这个用dos判断很好,不过exec执行的时候会出现dos窗口,我要隐藏它才行!

我找到方法了,把判断的脚本输出到一个临时的vbs文件里,执行这个vbs文件,或者把判断的脚本拼接成一个字符串,用Execute来执行。
这两种我都试过了,没问题啊,呵呵!

谢谢楼上热心的朋友!
作者: powerbat    时间: 2012-4-18 13:02

你这个方法我试过,不行的。(我碰到的误判问题现象也比较奇怪,在cmd或资源管理器中删除文件,提示成功,但一段时间内刷新还是可以看到文件存在。我记得好像是延时之后再判断,但又好像是用其他方法)
不知道你为什么一定要用cmd命令,fso自己有DeleteFile、DeleteFolder等删除文件(夹)的方法,且有force参数,我至今未碰到del、rd能删除但fso不能删除的文件。




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