VBScript, mehrere Dateien auf einem speziellen Windows-Drucker ausgeben (Druckername im Script angeben)
Das folgende Script habe ich aus einem älteren Beitrag in diesem Forum kopiert. Leider weiß ich nicht, wie es mir möglich ist, die Ausgabe auf einen speziellen Windows-Drucker (z.B. HP 2014) zu leiten. Die Druckausgabe erfolgt bisher immer auf dem Windows-Standarddrucker. Ich hoffe, dass mir irgendwer helfen kann. Danke!!!
'PrintAll.vbs
sSourceFolder = "P:\"
If WScript.Arguments.Count > 0 Then
sSourceFolder = WScript.Arguments(0)
End If
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(sSourceFolder) Then
WScript.Echo "Ordner " & sSourceFolder & " nicht verfügbar!"
WScript.Quit(2)
Else
bPrintetd = False
Set oShellApp = WScript.CreateObject("Shell.Application")
For Each oFile In fso.GetFolder(sSourceFolder).Files
If InstrRev(oFile.Name, ".") Then
If LCase(Mid(oFile.Name, InstrRev(oFile.Name, "."))) = ".pdf" Then
oShellApp.ShellExecute oFile.Path, "", "", "print", 0
bPrinted = True
WScript.Sleep(5180)
End If
End If
Next
Set oShellApp = Nothing
If Not bPrinted Then
WScript.Echo "Kein Dokument zum Drucken gefunden!"
WScript.Quit(1)
End If
End If
sSourceFolder = "P:\"
If WScript.Arguments.Count > 0 Then
sSourceFolder = WScript.Arguments(0)
End If
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(sSourceFolder) Then
WScript.Echo "Ordner " & sSourceFolder & " nicht verfügbar!"
WScript.Quit(2)
Else
bPrintetd = False
Set oShellApp = WScript.CreateObject("Shell.Application")
For Each oFile In fso.GetFolder(sSourceFolder).Files
If InstrRev(oFile.Name, ".") Then
If LCase(Mid(oFile.Name, InstrRev(oFile.Name, "."))) = ".pdf" Then
oShellApp.ShellExecute oFile.Path, "", "", "print", 0
bPrinted = True
WScript.Sleep(5180)
End If
End If
Next
Set oShellApp = Nothing
If Not bPrinted Then
WScript.Echo "Kein Dokument zum Drucken gefunden!"
WScript.Quit(1)
End If
End If
Please also mark the comments that contributed to the solution of the article
Content-Key: 147095
Url: https://administrator.de/contentid/147095
Printed on: April 24, 2024 at 17:04 o'clock
2 Comments
Latest comment
Hi,
also die konkrete Antwort auf deine Frage hab ich nicht.
Als Workaround könntest du aber einfach zuvor den Standardrucker ändern und danach wieder zurückstellen.
Hier ein kurzes Beispiel zum Standarddrucker setzen:
Gruß
Bernd
also die konkrete Antwort auf deine Frage hab ich nicht.
Als Workaround könntest du aber einfach zuvor den Standardrucker ändern und danach wieder zurückstellen.
Hier ein kurzes Beispiel zum Standarddrucker setzen:
Set WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colDrucker = WMIService.ExecQuery("SELECT * FROM Win32_Printer WHERE Name = 'DeinDruckerName'")
For Each Drucker in colDrucker
Drucker.SetDefaultPrinter()
Next
Bernd