2015-10-29 43 views
0

我正在创建一个基于Web的销售点,现在我正陷入VBScript中。打印文件夹中的所有文件,然后删除它们

该脚本应打印所选文件夹中的所有文件,之后我想删除打印的文件。 所选文件夹将仅包含将要打印的PDF文件。

这是我当前的代码:

TargetFolder = "C:\Users\pos\Downloads\" 
If TargetFolder > "" Then 
    Set objShell = CreateObject("Shell.Application") 
    Set objFolder = objShell.Namespace(TargetFolder) 
    Set colItems = objFolder.Items 
    For Each objItem in colItems 
    objItem.InvokeVerbEx("Print") 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set MyFile = fso.GetFile(TargetFolder+objItem) 
    MyFile.Delete 
    Next 
Else 
    Wscript.Quit 
End If 

如果我删除的删除文件部分的所有文件都打印出来,通过删除文件将删除所有文件会打印之前。

所以我想要的是打印文件,并将它们删除后,他们打印。

+1

调用'Print'动词最有可能异步运行(在将打印作业放入打印队列之前返回调用完成),所以我会尝试先执行打印作业,在第二个循环中删除文件,然后放入一些循环之间的延迟以允许打印完成。 –

回答

0

您可以在删除文件之前检测打印机作业队列是否为空。

Do 
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") 
    Set colItems = objWMIService.ExecQuery("Select Document from Win32_PrintJob", , 48) 
    WScript.Sleep(1000) 
Loop While colItems.Count > 0 

然后在另一个循环中删除文件。

相关问题