Vbscript 打印文件夹中的所有文件,然后将其删除

Vbscript 打印文件夹中的所有文件,然后将其删除,vbscript,Vbscript,我正在创建一个基于web的销售点,现在我被VBScript卡住了 脚本应该打印选定文件夹中的所有文件,然后我想删除打印的文件。 所选文件夹将仅包含要打印的PDF文件 这是我当前的代码: TargetFolder = "C:\Users\pos\Downloads\" If TargetFolder > "" Then Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace

我正在创建一个基于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
如果删除“删除文件”部分,则会打印所有文件,使用“删除文件”将在打印之前删除所有文件


因此,我想要的是打印文件,并在打印后将其删除。

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

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

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

调用
Print
谓词很可能是异步运行的(在将打印作业放入打印队列完成之前调用返回),因此我会先尝试执行打印作业,在第二个循环中删除文件,并在两个循环之间设置一些延迟,以允许打印完成。