2015-10-29 77 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 

然後在另一個循環中刪除文件。

相關問題