freshman2017
Goto Top

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?


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

Content-Key: 465444

Url: https://administrator.de/contentid/465444

Ausgedruckt am: 25.04.2024 um 01:04 Uhr

Mitglied: rubberman
Lösung rubberman 23.06.2019 um 20:40:04 Uhr
Goto Top
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
Mitglied: colinardo
Lösung colinardo 24.06.2019 aktualisiert um 12:23:35 Uhr
Goto Top
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.
' 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 so
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 willst
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 face-smile? Die Batch mäht nüs außer Fehler.


Grüße Uwe
Mitglied: freshman2017
freshman2017 26.06.2019 um 08:48:28 Uhr
Goto Top
Ich konnte alle Fehler finden und bedanke mich bei allen face-smile