Prüfung ob ImageX in PATH Pfad existiert
Hallo,
mit folgendem Code prüfe ich ob ImageX auf einem Rechner existiert. Der Pfad weicht von dem Batchpfad ab, wird wohl vom PATH Befehl gefunden.
Eine zuverlässige Abfrage bekomme ich nicht hin:
Wenn ImageX gefunden wurde gibt es je nach Laune Errorlevel 0 oder 1 zurück. Einen Zusammenhang erkenne ich nicht. Manchmal läuft IMageX einfach so durch, manchmal dauert es 12 Sekunden bis der Hilfetext ausgegeben wird.
Wenn ImageX nicht gefunden wurde ist der Errorlevel nicht zuverlässig 9009, es kann auch 0 sein. Wann und weshalb ist mir auch nicht klar, es scheint aber niemals in der Konsole aufzutreten sondern nur in einer Batch.
Wie prüfe ich die Existenz eines Befehls zuverlässig?
mit folgendem Code prüfe ich ob ImageX auf einem Rechner existiert. Der Pfad weicht von dem Batchpfad ab, wird wohl vom PATH Befehl gefunden.
ECHO ImageX wird gesucht...
IMAGEX /? >NUL 1>NUL 2>NUL
REM Fehler auch bei IF ERRORLEVEL 2
IF %ERRORLEVEL% EQU GTR 1 (
SET IMGInstalliert=Ja
REM Errorlevel zurück auf 0 setzen
CD > NUL
)
Eine zuverlässige Abfrage bekomme ich nicht hin:
Wenn ImageX gefunden wurde gibt es je nach Laune Errorlevel 0 oder 1 zurück. Einen Zusammenhang erkenne ich nicht. Manchmal läuft IMageX einfach so durch, manchmal dauert es 12 Sekunden bis der Hilfetext ausgegeben wird.
Wenn ImageX nicht gefunden wurde ist der Errorlevel nicht zuverlässig 9009, es kann auch 0 sein. Wann und weshalb ist mir auch nicht klar, es scheint aber niemals in der Konsole aufzutreten sondern nur in einer Batch.
Wie prüfe ich die Existenz eines Befehls zuverlässig?
Please also mark the comments that contributed to the solution of the article
Content-Key: 390175
Url: https://administrator.de/contentid/390175
Printed on: April 20, 2024 at 12:04 o'clock
4 Comments
Latest comment
Klingt alles sehr merkwürdig.
1) Gib das
2) Prüfe genau ob du in deinem Batchcode nicht zufällig die %path% Umgebungsvariable überschreibst.
3) Sichere ab, dass dein Batchscript nicht auch zufälligerweise ImageX.bat oder ImageX.cmd heißt, und auch sonst keine ausführbaren Dateien namens ImageX im Arbeitsverzeichnis liegen.
Steffen
1) Gib das
path
Kommando in einen CMD Prompt ein und prüfe ob der Pfad zu ImageX dort enthalten ist.2) Prüfe genau ob du in deinem Batchcode nicht zufällig die %path% Umgebungsvariable überschreibst.
3) Sichere ab, dass dein Batchscript nicht auch zufälligerweise ImageX.bat oder ImageX.cmd heißt, und auch sonst keine ausführbaren Dateien namens ImageX im Arbeitsverzeichnis liegen.
Steffen
Wenn ImageX selbst einen Bug hat, kannst du wenig machen. In dem Fall einfach prüfen, ob die Datei in der PATH Umgebung liegt.
Wenn kein Path Eintrag existiert funktioniert das natürlich ebenso wenig.
Falls ImageX im Arbeitsverzeichnis des Scripts liegt, reicht ein
Steffen
for %%i in ("imagex.exe") do if "%%~$PATH:i"=="" echo existiert nicht
Wenn kein Path Eintrag existiert funktioniert das natürlich ebenso wenig.
Falls ImageX im Arbeitsverzeichnis des Scripts liegt, reicht ein
if exist "imagex.exe" ...
für dieselbe Prüfung.Steffen