[FAQ] Aktive Batch Steuern?

Elaar

Profi
Thread Starter
Mitglied seit
20.01.2018
Beiträge
14
Guten tag,

Ich betreibe einen kleinen Gameserver.
Dieser wird per Batch gestartet und Läuft dann in einer Endlosschleife damit ich den Server Bequem Restarten kann.
Nun ist es aber erforderlich das ich in der cmd Console des Servers nachträglich einen weiteren befehl ausführen möchte und weiß nicht wie ich das realisieren kann!

Am Liebsten wäre die Möglichkeit das ich in der Laufenden cmd des servers mit einer weiteren Batch einen befehl ausführen kann!

Hoffe das mir hier geholfen werden kann?!?!?


Gruß, Thomas
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ruf' in der Schleife eine zweite Batch auf in der Du den Befehl bei Bedarf einträgst und die Batch sich dann selbst mit leerem Text überschreiben lässt.
 
Du meinst mittels Call eine weiter batch starten aber wie darf ich das mit dem "leeren text überschreiben lässt" hättest du mir da vlt ein paar code schnipsel?
 
Ja, meine ich. Wenn du aber da einen Befehl einträgst wird der natürlich so oft in deiner "Haupt-Batch" ausgeführt wie die durch die Schleife läuft. Willst Du einen Befehl da nur ein mal einschleusen muss die zweite Batch die du aufrufst nach dem Befehl natürlich wieder leer sein.

Ergo sieht die zweit Batch ca. so aus
Code:
@echo off
<hier tust du was du vorhast>
echo. >%~dp0%0
Mit dem echo unten überschreibt sich die Batch selbst mit nichts.
 
Glaube zu verstehen aber das wird so denke ich nicht Funktionieren da die Haupt Batch den Server startet und die Patch Pausiert bis der Server beendet wird. Erst dann arbeitet die Batch ja ihren Command line weiter.
Wünschenswert wäre es das ich von außen (local) direkt per Batch in die Serverkonsole arbeiten könnte um z.b. "Say Hello" in die konsole schreiben zu können.

Hintergrund:
Batch 1: Gameserver wir in einer Schleife gestartet das der Server Ständig neu Startet wenn er auch irgend einen Grund beendet wird.
Batch 2: Update Batch das Ständig in einem geClonten Ordner per Steamcmd Updatet und dann Clone mit Gameserver vergleicht ob es da eine veränderung gibt und dann bei Bedarf den Cloneordner über den Gameserver kopiert.

Batch 2 sollte nun bei Batch1 bei bedarf in die Konsole schreiben können "!Update" und den command "save" ausführen das den Server vor beenden nochmal abspeichern würde. beim Update lass ich den Server per Taskkill einfach beenden!
 
Versuch es in der Powershell.
Da kannst du Prozesse starten und diese dann als Objekte in Variablen speichern um später darauf zuzugreifen.
Start-Process


€: Hier ist auch ein Beispiel für das Weiterleiten von befehlen an den Prozess über den Standard-Input
Code:
$psi = New-Object System.Diagnostics.ProcessStartInfo;
$psi.FileName = "cmd.exe"; #process file
$psi.UseShellExecute = $false; #start the process from it's own executable file
$psi.RedirectStandardInput = $true; #enable the process to read from standard input

$p = [System.Diagnostics.Process]::Start($psi);

Start-Sleep -s 2 #wait 2 seconds so that the process can be up and running

$p.StandardInput.WriteLine("dir"); #StandardInput property of the Process is a .NET StreamWriter object
Quelle: powershell - Can I send some text to the STDIN of an active process under Windows? - Stack Overflow


Programmieren kannst du das ganze auch bequem in der Powershell ISE von Windows.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh