albertminrich
Goto Top

Vbs aus batch starten ohne neues fenster, batch soll weiterlaufen und sich wieder beenden

Hallo,

ich möchte aus einer cmd-Datei ein vb-Script starten, ohne daß sich ein neues Fenster öffnet und die cmd soll weiterlaufen UND (wichtig) sich am Ende auch wieder schließen.
Eigentlich kein Problem, dachte ich, aber so ganz mags nicht.

test.vbs
wscript.sleep 10000

Erster Versuch (test.cmd):
start cscript.exe //nologo test.vbs
echo weiter gehts
Damit läuft die cmd sofort bis zum Ende durch, das EAF (Eingabeaufforderungsfenster) schließt sich wieder. Aber es öffnet sich ein zweites EAF für den cscript.exe-Prozess (In der Titelleiste steht C:\windows\system32\cscript.exe), welches sich erst nach Ende der vbs-Datei (10 Sekunden) schließt. So gehts also nicht.

Zweiter Versuch:
start /B cscript.exe //nologo test.vbs
echo weiter gehts
Damit öffnet sich kein zusätzliches EAF für cscript.exe, die cmd-Datei wird auch sofort bis zum Ende abgearbeitet, aber das EAF schließt sich erst, wenn die vbs-Datei durch ist.

Ich hab schon mit den Parametern von start und cscript.exe rumprobiert, aber ich komm nicht zum gewünschten Ergebnis. Übrigens, wenn man die test.cmd aus einem bereits geöffneten EAF startet, läuft sie sofort durch und man steht wieder am prompt, aber es soll per Doppelklick auf die test.cmd funktionieren.


Was tun?
Gruß
AlbMin

Content-Key: 246406

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

Ausgedruckt am: 28.03.2024 um 08:03 Uhr

Mitglied: colinardo
Lösung colinardo 13.08.2014, aktualisiert am 15.08.2014 um 13:32:55 Uhr
Goto Top
N'abend AlbMin,
starte das Script einfach mit dem Windows-Script-Host Interpreter anstatt mit dem Kommandozeileninterpreter:
start wscript.exe test.vbs
Dann bleibt kein Konsolenfenster offen face-smile. Geht natürlich nur solange du nichts von der VBS an die Batch zurückgeben musst.

Grüße Uwe
Mitglied: AlbertMinrich
AlbertMinrich 13.08.2014 um 23:35:35 Uhr
Goto Top
Zitat von @colinardo:

N'abend AlbMin,
starte das Script einfach mit dem Windows-Script-Host Interpreter anstatt mit dem Kommandozeileninterpreter:
> start wscript.exe test.vbs
> 
Dann bleibt kein Konsolenfenster offen face-smile. Geht natürlich nur solange du nichts von der VBS an die Batch zurückgeben
musst.

Danke, aber es muß mit cscript.exe laufen.
Mitglied: colinardo
colinardo 13.08.2014 aktualisiert um 23:53:33 Uhr
Goto Top
Zitat von @AlbertMinrich:
Danke, aber es muß mit cscript.exe laufen.
darf man fragen was der Grund ist ? Kenne keinen anderen Weg, außer das ganze in eine EXE zu packen.
Mitglied: AlbertMinrich
AlbertMinrich 13.08.2014 um 23:58:26 Uhr
Goto Top
Zitat von @colinardo:

> Zitat von @AlbertMinrich:
> Danke, aber es muß mit cscript.exe laufen.
was ist der Grund ?

Wenn das Script auf Fehler läuft, poppen bei wscript "häßliche" Fenster auf, die man bestätigen muß, bei cscript kommt nur eine Zeile im EAF. Ich kann zwar mit wscript B Fehler unterdrücken, aber dann werden auch gewollte Script-Ausgaben (wscript.echo) nicht mehr ausgegeben.
Grübel grübel. Ich merke grad, wenn das vb-Script ohne sichtbares Fenster läuft, sieht man eh keine Ausgaben.
Dann kann ich es also auch mit wscript
B starten.

Super, danke.
Ich laß den Thread mal noch bis morgen als ungelöst stehen, vielleicht hast du oder jemand anders ja auch noch eine Lösung für cscript.

Gruß
AlbMin
Mitglied: colinardo
colinardo 14.08.2014 aktualisiert um 00:05:04 Uhr
Goto Top
p.s. im VBS kannst du zusätzlich auch mit On Error Resume Next Fehlerausgaben unterdrücken bzw. an deine Fehlerroutine weiterleiten, dann bleibt es silent!
mit /B geht's natürlich auch ...