2012-04-20 84 views
3

希望他们可能是可视化的几个文件的删除进度的方式,我认为当它完成运行清理的应用程序,它会删除该目录几乎是3GB,所以这将是很好,有一个类似显示如果使用VBSCRIPT删除文件夹中包含多个文件进度条

Const FOF_CREATEPROGRESSDLG = &H0& 

strTargetFolder = "C:\OfficeTemp" 

Set oShell = CreateObject("Shell.Application") 
Set objFolder = oShell.NameSpace(strTargetFolder) 

objFolder.CopyHere "OfficeTemp\*.*", FOF_CREATEPROGRESSDLG 

按说你可以用SHFileOperation实现这个进度条弹出,但我只看到的例子在C使用此++,没有人做到了这一点用VBScript?

C++ Win32 API Delete file with progress bar

+1

是,'SHFileOperation'会做到这一点,但是这是一个原生Win32函数,哪些不能直接从VBScript调用。你必须找到另一种方法,比如WMI。我不知道这种方法是否存在。 – 2012-04-20 02:45:00

回答

1

我的建议是,如果你想保持YOUT脚本敏捷不这样做。 这不是在GB可将长到删除,这样的一对夫妇的大文件是不适合的大小,因为你之前,你的图形用户界面和运行,显示了一定的进展您filedelition媒体链接可以做到。你刚刚显示文件名,因为它正在被删除。

如果是需要更长的时间进度条会更适合许多许多小文件,只需要做到这一点在IE或其它浏览器,你可以脚本,结果永远是非常可靠的,也不美丽。我已经看到了提供这种进度条的ActiveX对象,但即使可以使用这些对象也有问题。您需要事先知道需要删除的文件数量,并以小步骤划分进程并显示进度占总数的百分比。 这可能只需要删除本身,vbscript在处理文件时非常缓慢。 显示文件在这里肯定会慢下来的过程中,你可能会显示类似

1000个文件被删除..删除 2000文件..

让用户知道有事情发生。 确实删除了地图上的最快方法是由脱壳而出恩让德OS照顾它,然后等待进程结束,并从那里恢复脚本。

对于其中的一些aproaches我有样,对不起,我不能给你,易allproblemssolved答案。

+0

感谢您的答复,这将是更多的工作,比它的价值来呈现这一点为8-10秒,而文件夹删除,所以不是我只是增加了一个“请稍候”弹出,那么该建议的文件MSGBOX一旦完成就会被删除,谢谢不过只是为了让它更加优雅,但是这里的收益递减规律,所以他们只需要耐心等待。 – 2012-04-29 16:15:18

0

对于人们对外观的进度而复制,我发现这同时,测试工作Win7上

Const FOF_CREATEPROGRESSDLG = &H0& 

strTargetFolder = "D:\Scripts" 

Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.NameSpace(strTargetFolder) 

objFolder.CopyHere "C:\Scripts\*.*", FOF_CREATEPROGRESSDLG 
相关问题