Batch Bug suche für taskfind Programm

Status
Für weitere Antworten geschlossen.

Spooonky

Newbie
Registriert
Dez. 2017
Beiträge
3
Hey Leute,

ich habe mir ein Programm geschrieben das überprüft ob 2 online sind und wenn nicht sie halt startet.
mein problem ist das dort irgendwo ein bug drin ist der das ganze garnicht erst ausführen lässt sondern direkt schließt und ich depp kann ich leider nicht finden.
Könnt ihr da eventuell mal drüber schauen?

Code:
@echo off

set license=AccountingServerEmulator-Windows.exe
set ts=ts3server.exe
set bot=JTS3ServerMod-Windows.exe


:start
tasklist |find /i "%license%" >nul
if %errorlevel% == 0 (
echo Der "%license%" laeuft gerade!
) else ( 
echo Der "%license%" laeuft gerade nicht!
tasklist |find /i "%ts%" >nul
if %errorlevel% == 0 (
taskkill /F "%ts%"
Echo "%ts%" wurde beendet
echo "%license%" Wird gestartet
cd C:\Users\Windows Server2\Desktop\teamspeak3-server_win64
AccountingServerEmulator-Windows.exe
echo "%license%" gestartet
timeout /t 20 /nobreak
)
:2
tasklist |find /i "%license%" >nul
if %errorlevel% == 1 (
timeout /t 10 /nobreak 
goto 2
) else (
tasklist |find /i "%ts%" >nul
if %errorlevel% == 0 (
echo Der "%ts%" laeuft gerade!
) else ( 
echo Der "%ts%" laeuft gerade nicht!
echo "%ts%" Wird gestartet
cd C:\Users\Windows Server2\Desktop\teamspeak3-server_win64
ts3server.exe
echo "%ts%" gestartet
)
goto start
pause
 
Zuletzt bearbeitet: (leerzeichen hinter find eigefügt)
Dann mach ne cmd auf und führ das Script darin aus, dann siehst du auch was dein Problem ist.

Aber ich vermute mal ganz salopp, das es daran liegt das du Leerzeichen im Pfad hast und den Pfad aber nicht in " geschrieben hast. Er dürfte ihn daher nicht finden und kann damit auch die exe-Dateien nicht finden.
 
Zwischen dem find und dem /i muss schon auch ein Leerzeichen sein.
Ansonsten wärs halt schon gut wenn du auch die Fehlermeldung dazu postest. Deine Umgebung wird sicher keiner Nachbauen...
 
Leerzeichen sind eingefügt, leider besteht der fehler immer noch. Die Eingabeaufforderung wirft mir nichts aus sondern beendet es einfach.
ich habe schon versucht den Befehl so auszuführen und selbst da wirft er mir nichts aus

Code:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\Windows Server2>tasklist |find /i "%license%" >nul

C:\Users\Windows Server2>

Die Variable habe ich natürlich ersetzt
 
Nice. Schön dabei helfen den Lizenzabgleich vom TeamSpeak³-Server auszutricksen indem ein lokaler Lizenzserver emuliert wird.

Und auch schön, wie du offensichtlich ein fertig kopiertes Batchskript versuchst anzupassen, aber offensichtlich nicht verstehst, was da passiert.
 
Aus dem Grund ist hier auch dicht.

Ts kostet fast nichts. Kauf es gefälligst!
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

Zurück
Oben