mc-doubleyou
Goto Top

cmd Prozess mit Abfrage ob läuft und wenn nicht ...

Hallo Leute

hab da ein Problemchen

Kenne eigentlich den Code aber irgendwie startet er es nochmal auch wenn es schon läuft sonst arbeitet er eh alles ab

@echo OFF

tasklist |find "Nettalk.exe" >nul  
if %errorlevel% == 0 (
goto infium
) else (
start "Nettalk" G:\PortableApps\ntalk\Nettalk.exe  
goto infium
)

:infium

set qip="G:\PortableApps\QIP Infium\infium.exe"  

tasklist |find "infium.exe" >nul  
if %errorlevel% == 0 (
goto aMSN
) else (
start "Qip" %qip%  
goto aMSN
)

:aMSN

tasklist |find "aMSNPortable.exe" >nul  
if %errorlevel% == 0 (
goto u3
) else (
start "Nettalk" G:\PortableApps\aMSNPortable\aMSNPortable.exe  
goto u3
)

:u3

tasklist |find "LaunchU3.exe" >nul  
if %errorlevel% == 0 (
exit
) else (
start "LaunchU3" F:\LaunchU3.exe  
exit
)

Was mache ich falsch? Ist die Taskabfrage falsch?

bitte helfen *gg*

lg MC
Kommentar vom Moderator Biber am 05.10.2009 um 07:47:39 Uhr
Verschoben von "Entwicklung" nach "Batch & Shell".

Content-ID: 126355

Url: https://administrator.de/forum/cmd-prozess-mit-abfrage-ob-laeuft-und-wenn-nicht-126355.html

Ausgedruckt am: 20.04.2025 um 21:04 Uhr

bastla
bastla 03.10.2009 um 20:17:26 Uhr
Goto Top
Hallo mc-doubleyou!

Was genau das Problem ist, habe ich zwar noch nicht verstanden, aber zumindest eine etwas kompaktere Schreibweise könnte ich (ungetestet) empfehlen:
@echo off
tasklist|find "Nettalk.exe">nul||start "Nettalk" G:\PortableApps\ntalk\Nettalk.exe  
set qip="G:\PortableApps\QIP Infium\infium.exe"  
tasklist|find "infium.exe">nul||start "Qip" %qip%  
tasklist|find "aMSNPortable.exe">nul||start "Nettalk" G:\PortableApps\aMSNPortable\aMSNPortable.exe  
tasklist|find "LaunchU3.exe">nul||start "LaunchU3" F:\LaunchU3.exe  
Grüße
bastla
mc-doubleyou
mc-doubleyou 03.10.2009 um 21:31:33 Uhr
Goto Top
theoretisch klappts nur eben samt dem fehler

es geht darum:

läuft das programm schon starte es nicht nochmal wenn nicht starte es

bei einem einzelnen programm gings - aber so startet er es auch wenns schon läuft
bastla
bastla 03.10.2009 um 21:40:24 Uhr
Goto Top
Hallo mc-doubleyou!

Wenn das Programm (in exakt der angegebenen Schreibweise - also mit Berücksichtigung von Groß-/Kleinschreibung) im Ergebnis von "tasklist" enthalten ist, kann ich mir (weder bei Deiner noch bei meiner Schreibweise) erklären, warum es nochmals gestartet werden sollte ...

Um zumindest das "Groß-/Kleinschreibungsproblem" aus der Welt zu schaffen, kannst Du "find /i" verwenden (bzw, um es auch so versucht zu haben, "findstr /i").

Grüße
bastla
mc-doubleyou
mc-doubleyou 03.10.2009 um 21:55:50 Uhr
Goto Top
das /i wirkt wunder ^^

danke

im anderen thread meinte wer /i kann weg aber scheinbar doch nicht
bastla
bastla 03.10.2009 um 22:07:52 Uhr
Goto Top
Hallo mc-doubleyou!

TimoBeil hatte es im anderen Thread etwas verkürzt (aber nicht unrichtig) geschrieben - daher nochmals: "/i" brauchst Du dann tatsächlich nicht, wenn die Schreibweise in der "tasklist"-Ausgabe und in Deinem "find" exakt gleich (also zB jeweils alles in Kleinbuchstaben) ist. Da es aber (zumindest in diesem Fall) nicht schadet, die Option "/i" zu verwenden, bist Du damit auf der sicher(er)en Seite ...

Grüße
bastla
mc-doubleyou
mc-doubleyou 03.10.2009 um 22:35:04 Uhr
Goto Top
hi bastla

danke das hab ich eh verstanden dachte nur es wäre nich nötig was es nun scheinbar doch ist und in einem fall ist der task nicht ident mit der exe aber das weiß ich ja schon länger ^^

Danke an alle es klappt