Vbscript 打印文件夹中的所有文件,然后将其删除
我正在创建一个基于web的销售点,现在我被VBScript卡住了 脚本应该打印选定文件夹中的所有文件,然后我想删除打印的文件。 所选文件夹将仅包含要打印的PDF文件 这是我当前的代码:Vbscript 打印文件夹中的所有文件,然后将其删除,vbscript,Vbscript,我正在创建一个基于web的销售点,现在我被VBScript卡住了 脚本应该打印选定文件夹中的所有文件,然后我想删除打印的文件。 所选文件夹将仅包含要打印的PDF文件 这是我当前的代码: TargetFolder = "C:\Users\pos\Downloads\" If TargetFolder > "" Then Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace
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
谓词很可能是异步运行的(在将打印作业放入打印队列完成之前调用返回),因此我会先尝试执行打印作业,在第二个循环中删除文件,并在两个循环之间设置一些延迟,以允许打印完成。