Batch soll nur Programm starten und direkt sich schließen

DerErkster

Newbie
Registriert
Feb. 2021
Beiträge
6
Hallo Leute,

ich habe eine Batch Datei erstellt die meinen TS Server sowie einen Bot die als Dienst eingerichtet sind startet.
Nun wollte ich das auch über diese Batch auch der andere TS Bot gestartet wird. Dieser muss jedoch als .exe gestartet werden.
Somit habe ich aktuell folgenen Inhalt (ohne _____):

___________
@Echo
net start "TS3 Server"
timeout 15 /nobreak

net start "TS3 Bot"
timeout 15 /nobreak

start "" "C:\SinusBot\sinusbot.exe"
____________

Nun ist es so das die beiden Dienste ohne Probleme laufen.

Meine "Problem" ist nun das die exe zwar gestartet wird, jedoch sich in dem DOS Fenster auch das Programm startet. Also es wird ja dann über das DOS Fenster geladen.
Leider kann ich nun das DOS Fenster nicht mehr schließen. Denn sobald ich das Fenster schließe, wird auch die exe beendet.
Nun ist die Frage, wie kann man es umsetzten das die exe über die Batch zwar gestartet wird, das DOS Fenster der Batch sich aber ohne Probleme selbstständig schließt ohne dabei die exe zu killen ?

ein exit bringt leider nicht den gewünschten erfolg

Ich hoffe ihr habt da ein paar Ideen.
 
was ist, wenn Du das echo entfernst? echo schreibt doch was auf den Bildschirm, soweit ich weiß
 
AGB-Leser schrieb:
was ist, wenn Du das echo entfernst? echo schreibt doch was auf den Bildschirm, soweit ich weiß
Leider auch nix. er öffnet trotzdem ein window aus mit dem titel C:\windows\system32\cmd.exe und darin ist quasie der startvorgang der exe aufgelistet. Und es bleibt auch nach erfolgreichem Start geöffnet
 
ich teste das jetze mal
Ergänzung ()

wie ist denn die Dateiendung für eine Batch?
 
Per Hand schließt man ein cmd Fenster mit EXIT, geht das nicht vielleicht, wenn das im Batch am Ende steht?
 
Das schließt sich automatisch. Wenn Du das verhindern willst, musste ein pause ans Ende setzen
Ergänzung ()

so, grade getestet: funktioniert ohne Probleme. Was ich getestet habe:

@Echo
start "" notepad.exe
timeout 5 /nobreak

start "" firefox.exe
 
AGB-Leser schrieb:
Das schließt sich automatisch. Wenn Du das verhindern willst, musste ein pause ans Ende setzen
hi, also ich habe es nun nochmal getestet und habe meinen "Fehler" gefunden. Ich hatte am Ende immer noch ein Timeout stehen gehabt, was ich leider im eröffnungsthred nicht stehen hatte, da ich bei den Diensten ohne Timeout ein startfehler des ersten bots sonst bekomme, dachte ich mir ich lasse die batch am ende nochmal 15 sekunden warten für den zweiten bot damit dieser in ruhe starten kann bevor sich die cmd beendet.
Dieses Timeout musste nun doch weg und die exe startet dann wenige sekunden nachdem sich die cmd geschlossen hat. Also passt es denn jetzt alles wie es soll.
Hatte halt nur aus Vorsorge gden timeout drin gelassen.
Trotzdem danke für deine Hilfe
 
  • Gefällt mir
Reaktionen: PHuV
AGB-Leser schrieb:
ja, dient ja nur zur Kontrolle. Habs grade noch mal getestet. Auch ohne echo zeigt der das an
Also der Ursprungscode ist der gewesen:

@Echo
net start "TS3 Server"
timeout 15 /nobreak

net start "TS3 Bot"
timeout 15 /nobreak

start "" "C:\SinusBot\sinusbot.exe"
timeout 15 /nobreak <- Diese Zeile war im eröffnungsthread nicht drin.

Aber wenn ich den Code halt um die letzte Timeout Zeile kürze, also nur noch:

@Echo
net start "TS3 Server"
timeout 15 /nobreak

net start "TS3 Bot"
timeout 15 /nobreak

start "" "C:\SinusBot\sinusbot.exe"

macht die Batch das was sie soll und geht auch zu ohne die exe zu killen.

Das echo habe ich inzwischen auch entfernt. Ich habe dann nurnoch die timeout time zwischen den 3 commands etwas verkürzt. Denn ohne die beiden timeouts klappt es leider nicht da sonst alles 3 gleichzeitig startet und dann die bots net anlaufen.

Aber es geht nun so wie es soll.
 
Die Anführungszeichen bei Start stehen für den Fenstertitel und das /nobreak verhindert, dass der Timeout mit Strg+C abgebrochen werden kann.
 
AGB-Leser schrieb:
Ah, alles klar. Ich bin da eher der Fan von, etwas abbrechen zu können ;)
Naja da es nur zwei Dienste und ein programm sind die gestartet werden bei denen nichts installiert oder verändert wird macht das nix das man es nicht abbrechen kann/ soll. Denn das eine ist der TS3 Server der als Dienst normalerweise läuft und der zweite Dienst ist halt ein TS3 Bot. Die Exe ist ebenfalls ein Bot für den TS3 Server, der jedoch nicht als Dienst laufen kann, da er dann nicht ausgeführt werden kann. Und von daher ist ein Abbruch nicht notwending. Wenn es jetzt um ein Backup, einen Kopier/ Verschiebe Vorgang, ein Upadte oder eine Installation wäre, dann gebe ich dir recht ist das Abbrechen evtl Sinnvoll, aber dann könnte man auch das DOS Fenster einfach schließen. mit Nobreak verweigert man einfach das das DOS Fenster das man den Timeout der als Unterbrechung dient mit Strg+c abbrechen kann. Und da aber ja Strg+C auch die Tastenkombi für kopieren ist, muss es nicht unbedingt sein das man versehentlich mit der Tastenkombi den Timeout abbricht
 
Ach, das mit dem strg+c hatte ich unter Windows noch garnicht probiert. Aber klar, ist dann schön blöd, wenn das Programm keine andere Kombi hat. Unter Ubuntu in tilda muss ich strg+Umschalt+c fürs kopieren drücken, weil das andere ja den Abbruch auslöst
 
Bei MS DOS gibts einen Befehl call, der andere Programme startet.
Hm, geht anscheinend nur für weiter Batch Scripte.
 
Zuletzt bearbeitet:
Hast du ein Screenshot von dem Dienst Wie z.B.:
1612785962769.png


Du kannst auch mal den Dienstenamen probiert um den dienst starten zu lassen oder alternativ mal mit dem Befehl "sc"
 
Zurück
Oben