Exakter Name in Batch-Datei

  • #1
E

EifrigerLeser

Neues Mitglied
Themenersteller
Dabei seit
07.02.2020
Beiträge
3
Reaktionspunkte
0
Hallo,

ich möchte in einer Suche in einer Batch-datei den genauen Prozessnamen ermitteln. Dazu verwende ich
TASKLIST | find /i "Edge.exe"
%Errorlevel%
liefert mit dann einen Fehler, wenn die Dateie nicht gefunden wurde.
Dabei möchte ich nur den Prozeß Edge.exe finden und eben nicht noch MicrodoftEdge.exe
Wie kann ich die Suche auf exakt diese Datei beschränken?
 
  • #2
Mit Windows Mitteln geht das nicht. Du brauchst ein Tool wie awk aus det Unix/Linux Welt, das es auch für W10 inzwischen gibt. Damit kann man den Begriff Microsoft vor Edge entfernen.
 
  • #3
Mit folgendem Batch klappt es auch.
FindEdge.bat
Code:
tasklist >%temp%\tl.txt
findstr Edge %temp%\tl.txt
pause

Das Ergebnis sieht folgendermaßen aus, wenn Edge gestartet ist:

1581239610756.png

Und so sieht es aus, wenn Edge nicht gestartet ist:

1581239548828.png

Wenn man als Suchbegriff "Edge.exe" benutzt, dann wird nur MicrosoftEdge.exe aufgelistet.
Edge.exe ohne Microsoft gibt es nicht.

Auch der Task-Manager kennt nur Micosoft Edge, das ist eine Fülle von Programmen, die sich dahinter verbergen.

1581240265297.png

Bei mir gibt es auf dem gesamten Laufwerk C: keine Datei Edge.exe
1581240735529.png
 

Anhänge

  • FindEdge.zip
    171 Bytes · Aufrufe: 1
Zuletzt bearbeitet:
  • #4
hkdd schrieb:
Edge.exe ohne Microsoft gibt es nicht.
Da liegt ja mein Problem. Ich habe ein Programm, welches "Edge.exe" (Siemens Solid Edge) heisst.
Ich frage ab ob mein Programm bereits läuft.
Code:
TASKLIST | find /i "edge.exe"
IF %ERRORLEVEL% == 0 GOTO LOOP4
Ich frage also, ob "Edge.EXE" in der Taskliste ist. Wird es nicht gefunden, kommt ein Fehler.
Und wegen dem MS Edge kommt nun als Anwort "ja" - damit ist Errorlevel = 0.
Das ist das Problem. Ich möchte also wissen, ob "Edge.exe" läuft. "MS Edge.*" möchte ich ignorieren.
 

Anhänge

  • S001.png
    S001.png
    2,3 KB · Aufrufe: 3
Zuletzt bearbeitet:
  • #5
Das hättest Du ja gleich sagen können.
Wenn Du die Einträge für "MicrosoftEdge.exe" und "Edge.exe" im TaskList-Listing vergleichst, siehst Du, dass Edge.exe wesentlich mehr nachfolgende Leerzeichen enthält. Diese muss man dem Find-String hinzufügen und damit klappt es.
1581319858734.png

Ich hänge Dir den BAT an, Du kannst ja dort die Errorlevel-Abfragen ergänzen oder den Suchstring in Deinen BAT übernehmen. Es sollte funktionieren.

Mit PrfEdge.bat wird geprüft, ob das Programm aktiv ist oder nicht.
Code:
@ECHO OFF
TASKLIST | FIND "Edge.exe                    "
IF %Errorlevel% == 0 GOTO Err0
ECHO Edge.exe ist nicht gestartet
GOTO PrfEnde
:Err0
ECHO Edge.exe ist gestartet
:PrfEnde
PAUSE
 

Anhänge

  • FindEdge.zip
    178 Bytes · Aufrufe: 1
  • PrfEdge.zip
    246 Bytes · Aufrufe: 1
Zuletzt bearbeitet:
  • #6
Vielen Dank Hartmut. Es funktioniert!
 
Thema:

Exakter Name in Batch-Datei

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben