Ich habe eine VBS, die eine Reihe von Dateien in PDF druckt. Funktioniert einwandfrei, wenn VBS manuell ausgeführt wird, aber wenn versucht wird, entweder über Batch oder Geplante Task auszuführen, funktioniert es nicht. Ich habe folgendes versucht.Kann VBS nicht als Batch oder geplante Aufgabe ausführen
Batch File:
C:\APPS\TEMP\example.vbs
Ergebnis:
Batch File:
%windir%\syswow64\cscript //nologo C:\APPS\TEMP\example.vbs
gleiche Ergebnis wie Bild oben gezeigt.
VBS-Code:
Set fso = CreateObject("Scripting.FileSystemObject")
currentdir = fso.GetAbsolutePathName(".")
Set xmldom = CreateObject("MSXML.DOMDocument")
xmldom.Load(currentdir & "\info.xml")
progid = xmldom.SelectSingleNode("/xml/progid").text
Set obj = CreateObject(progid)
printername = obj.GetPrinterName
runonce = obj.GetSettingsFileName(True)
Set fldr = fso.GetFolder(currentdir & "\in")
cnt = 0
For Each f In fldr.files
cnt = cnt + 1
output = currentdir & "\out\" & Replace(f.name, ".xls", "") & ".pdf"
obj.Init
obj.SetValue "Output", output
obj.SetValue "ShowSettings", "never"
obj.SetValue "ShowPDF", "no"
obj.SetValue "ShowProgress", "no"
obj.SetValue "ShowProgressFinished", "no"
obj.SetValue "SuppressErrors", "yes"
obj.SetValue "ConfirmOverwrite", "no"
obj.WriteSettings True
printfile = currentdir & "\in\" & f.Name
cmd = """" & currentdir & "\printto.exe"" """ & printfile & """ """ & printername & """"
Set WshShell = WScript.CreateObject("WScript.Shell")
ret = WshShell.Run(cmd, 1, True)
While fso.fileexists(runonce)
WScript.Sleep 100
Wend
Next
Set obj = Nothing
WScript.Echo cnt & " documents were printed."
Um es zu bekommen manuell ausführen musste ich für VBS 32-Bit-cscript.exe
als Standardprogramm einzustellen. In meinen Augen sollte der Batch-Code, der zuerst auf den VBS verweist, funktionieren, aber ich bin mir nicht sicher, warum das nicht der Fall ist. Dies in einem Windows Server 2008 R2-System. Versuchen Sie es auch auf einer Windows 7 x64-Box, um alle ungeraden GPO- oder Sicherheitsprobleme zu beseitigen.
Verwenden Sie beim Ausführen des Skripts erhöhte Berechtigungen? – Lankymart
Wussten Sie, dass Sie aus dem cmd-Fenster kopieren und einfügen können? – Squashman