Batch Schleife mit findstr Suche nach getrenntem Wort

Manaplayer

Cadet 4th Year
Registriert
Juni 2017
Beiträge
105
Hallöchen Leute,
Ich bin mal wieder am verzweifeln.
Ich will mit Tasklist herausfinden ob ein Programm zweimal gleichzeitig läuft und dann weitere Schritte tun.

FOR /f "skip=1 tokens=1" %a in ('tasklist /fi "imagename eq test bla.exe" ^|findstr "test bla.exe"') do (echo %a)

Anzeigt wird aber nur "test", nicht der komplette Name des Programms. Wenn ich die Anführungszeichen bei findstr test bla.exe
weglasse, wird dann nur "bla.exe" angezeigt.

Hat jemand eine Idee was korrekt zu tun ist?
 
In den Anführungsstrichen mit einfachen Hochkommatas arbeiten:


FOR /f "skip=1 tokens=1" %a in ('tasklist /fi "imagename eq 'test bla.exe'" ^|findstr "test bla.exe"') do (echo %a)
 
Danke für die schnelle Antwort, aber dabei kommt raus, dass die Sache ungültig ist.

Ich mache alles mit cmd, weil ich es bisher so gelernt hab und alle Ziele bisher damit erreichen konnte.
 
Dabei kommt auch das selbe raus mit "entweder test, oder bla.exe"
 
Dankeschön, aber ich kapiere die ganze russische Sprache von dem Zeug nicht.

Mit

FOR /f "skip=4 tokens=1 delims=2" %a in ('tasklist /fi "imagename eq test bla.exe"') do (set doof=%a)

Bin ich ein Stückchen weitergekommen, nur mit der Sache, dass es nicht nur der Name des Prozesses ist:

echo %doof%
test bla.exe )
 
Das ist es ja - WIe oder wo finde ich heraus, dass ein Prozess mehr als einmal läuft?
Die hier beschriebenen Befehle sollen das herausfinden, um später in einer anderen Batch weiterzukommen.
Alles wäre kein Problem und längst erledigt, wenn es nicht die Sache mit dem getrennten Namen des Prozesses geben würde.
 
Moin,

ist der Prozess wirklich mit Leerzeichen?

CYA_D0c

Mal mit ner Variablen versucht?
 
Ja, darum versuche ich ja mit dem Testnamen "test bla.exe" erstmal auszuprobieren.
Aber ich hab eine andere Idee gefunden:

FOR /f "skip=4 tokens=8" %a in ('tasklist /v /fi "imagename eq test bla.exe"') do (set läuft=%a)

Damit soll das Wort "Running" angezeigt werden. Wenn es keinen zweiten Prozess gibt, bleibt die Zeile natürlich leer und kann mit einer Variable dann den Stand der Prozesse festsetzen.
 
Ich hatte oft Probleme wenn ich zwei Befehle machen wollte ohne diese Striche, darum mache ich sie einfach gewohnt hin bis es zu dem ersten Fehler kommt.
 
Zurück
Oben