AW: Batchdatei wird nicht durchlaufen. Sofort Ende
07.06.2018 16:33:55
Zwenn
Hallo Jens,
der Ansatz von Case ist schon richtig. Ich hatte mal das gleiche Problem und konnte es durch das Starten des Programms über die Konsole innerhalb des Windows Scripting Host lösen. Ob diese Verschachtelung bei Dir auch funktioniert musst Du ausprobieren. Nur über den WSH ging es bei mir auch nicht.
Hier einmal mein Code mit meinen damaligen Kommentaren. Beides angepasst auf Dein Problem. Der entscheidende Kommentar (für mich damals) ist fett hervorgehoben:
Sub main()
Dim WshShell As Object 'Variable zur Aufnahme des Windows Scripting Host Objektes
Dim Pfad As String
'Setzen des Pfades zur Batch-Datei
Pfad = ThisWorkbook.Path & "\SL\ServerUP.bat"
'Bereitstellung des Windows Scripting Host
Set WshShell = CreateObject("Wscript.Shell")
'Ausführen der Batch-Datei auf der Windows Konsole
'(Achtung: Wenn der Pfad Umlaute, das ß oder andere Nicht-Dos Sonderzeichen enthält,
'müssen diese als DOS-Kompatibel gesetzt werden! [ASCII ANSI])
'Der Parameter /c hinter cmd schließt die Konsole (cmd) nach Batch-Ende
'(Es gibt alternativ den Parameter /k, der die Konsole offen lässt.
'Achtung: Bei Mehrfachaufrufen bleibt das Makro mit /k stehen)
'Durch setzen des vorletzten Parameter auf 0, führt der Windows Scripting Host
'die Konsole unsichtbar aus (1 macht sie sichtbar)
'Durch setzen des letzten Parameter auf True, wartet das Makro, bis der Windows
'Scripting Host die Konsole wieder beendet hat (Achtung: Bei False würde das Makro
'weiterlaufen und nicht warten, bis der aktuelle Batch-Lauf berechnet wurde)
WshShell.Run "cmd /c & Pfad", 0, True
MsgBox "Weiter"
Set WshShell = Nothing
End Sub
Viele Grüße,
Zwenn