2015-10-29 7 views
0

Я создаю веб-точку продаж, и прямо сейчас я застрял в 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 

Затем удалите файлы в другом цикле.

Смежные вопросы