VBS und Batch in einem ausführen
Schönen Guten Abend,
ich würde gerne mit nachfolgendem Batch eine VBS und eine Batch zusammen ausführen. Jemand ein Tipp für mich, woran es liegt?
ich würde gerne mit nachfolgendem Batch eine VBS und eine Batch zusammen ausführen. Jemand ein Tipp für mich, woran es liegt?
Dim WshShell : set WshShell = CreateObject("Wscript.Shell")
Dim FSO : set FSO = CreateObject("Scripting.FileSystemObject")
' temporäre Batch-Datein erzeugen
Dim prog1 : prog1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & FSO.GetTempName & ".vbs"
' Verzeichnis erstellen, wenn nicht vorhanden
With FSO.CreateTextFile(prog1, True)
.WriteLine "Set objShell = CreateObject(""Wscript.Shell"")"
.WriteLine "Set fso = CreateObject(""Scripting.Filesystemobject"")"
.WriteLine "ziel = objShell.ExpandEnvironmentStrings(""C:\ProgramData\TEST"")"
.WriteLine "If Not fso.FolderExists(ziel) Then "
.WriteLine " fso.CreateFolder ziel"
.WriteLine "End if"
.Close
End With
' temporäre Batch-Datei ausführen, auf Ende warten
WshShell.Run prog1, 0, True
' temporäre Batch-Datei löschen
FSO.DeleteFile prog1, True
' temporäre Batch-Datein erzeugen
Dim prog2 : prog2 = WshShell.ExpandEnvironmentStrings("C:\ProgramData\TEST") & FSO.GetTempName & ".cmd"
' BATCH DATEI
With FSO.CreateTextFile(prog2, True)
.WriteLine "..."
.Close
End With
' temporäre Batch-Datei ausführen, auf Ende warten
WshShell.Run prog2, 0, True
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 465444
Url: https://administrator.de/forum/vbs-und-batch-in-einem-ausfuehren-465444.html
Ausgedruckt am: 11.04.2025 um 08:04 Uhr
3 Kommentare
Neuester Kommentar
https://ss64.com/vb/run.html
Solange du dem bWaitOnReturn Parameter True übergibst, wird natürlich auf das Beenden des aufgerufenen Kommandos gewartet, bevor es weiter geht.
Steffen
Solange du dem bWaitOnReturn Parameter True übergibst, wird natürlich auf das Beenden des aufgerufenen Kommandos gewartet, bevor es weiter geht.
Steffen
Zitat von @freshman2017:
ich würde gerne mit nachfolgendem Batch eine VBS und eine Batch zusammen ausführen. Jemand ein Tipp für mich, woran es liegt?
Also ich sehe da noch weitere Fehler und Ungereimtheiten.ich würde gerne mit nachfolgendem Batch eine VBS und eine Batch zusammen ausführen. Jemand ein Tipp für mich, woran es liegt?
' temporäre Batch-Datein erzeugen
Dim prog1 : prog1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & FSO.GetTempName & ".vbs"
Hier fehlt der Backslash zwischen Pfad und Dateiname . Überlicherweise macht man das soDim prog1 : prog1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & FSO.GetTempName & ".vbs"
prog1 = fso.BuildPath(WshShell.ExpandEnvironmentStrings("%userprofile%"),FSO.GetTempName & ".vbs")
.WriteLine "ziel = objShell.ExpandEnvironmentStrings(""C:\ProgramData\TEST"")"
Was soll im Pfad "C:\ProgramData\TEST" aufgelöst werden, da ist keine Umgebungsvariable drin, überflüssig ...' temporäre Batch-Datei ausführen, auf Ende warten
WshShell.Run prog1, 0, True
Wie @rubberman schon schreibt, Programm wartet bis es zu Ende ist. K.A. was du von beidem willstWshShell.Run prog1, 0, True
Dim prog2 : prog2 = WshShell.ExpandEnvironmentStrings("C:\ProgramData\TEST") & FSO.GetTempName & ".cmd"
Same as above.., der Backslash fehlt in der String-Verknüpfung.WriteLine "..."
Wat soll das tun Grüße Uwe