Batchabfrage zum Prüfen ob ein Prozess läuft
Script stürzt bei "(qprocess > find nlnotes.exe >NUL) || start %$pfad%" ab, lief bisher stabil.
Hallo,
folgendes Script lief bis vor kurzem auf unseren WinXP Professional PC's ohne Probleme, jetzt auf ein mal nicht mehr.
Folgende Situation soll damit gelöst werden:
Es sind bei uns in der Firma zwei verschiedene Betriebssysteminstallationen vorhanden, einmal XP Professional in englischer Version und einmal in deutscher. Auf das setzten der Makrosicherheit hat das keinen Einfluss, da der Registryeintrag in deutscher und englischer Version der selbe ist. Bei Lotus sieht das anders aus da die Installationsverzeichnisse unterschiedlich sind.
Daher prüfe ich zuerst mit "if exist" ab um welche der Versionen es sich handelt und speichere den entsprechenden Pfad zur "notes.exe" in die Variable $pfad, über "(qprocess > find nlnotes.exe >NUL) || start %$pfad%" soll dann geprüft werden, ob der Prozess "nlnotes.exe" bereits läuft, wenn nicht soll er ihn starten (über die Variable "$pfad").
Ich habe schon mehere hier in den Foren gepostete Möglichkeiten durchprobiert aber das Script hakt immer wieder bei "qprocess > find" und bricht ab. Weiß von euch jemand noch eine Möglichkeit oder entdeckt den/die Fehler?
Danke für die Hilfe,
MfG sabcat
Hallo,
folgendes Script lief bis vor kurzem auf unseren WinXP Professional PC's ohne Probleme, jetzt auf ein mal nicht mehr.
@echo off
title Lotus Notes starten und Word-Makro-Sicherheit auf Mittel setzen
cls
regedit /s N:\ADB\Bat\WordSecurity_middle.reg
set $pfad=0
:: für Mobility Windows wird Notes mit Angabe zum INI-File gestartet, vgl. Icon)
if exist C:\Programme\Lotus\Notes\notes.exe (set $pfad=C:\Programme\Lotus\Notes\notes.exe =Z:\Lotus-Notes-Data\notes.ini)
if exist C:\"Program Files"\Lotus\Notes\notes.exe (set $pfad=C:\"Program Files"\Lotus\Notes\notes.exe)
if "%$pfad%"=="0" goto no_notes
(qprocess > find nlnotes.exe >NUL) || start %$pfad%
goto end
:no_notes
echo Lotus Notes nicht gefunden, bitte manuell starten.
pause
goto end
:end
set $pfad=
Folgende Situation soll damit gelöst werden:
Es sind bei uns in der Firma zwei verschiedene Betriebssysteminstallationen vorhanden, einmal XP Professional in englischer Version und einmal in deutscher. Auf das setzten der Makrosicherheit hat das keinen Einfluss, da der Registryeintrag in deutscher und englischer Version der selbe ist. Bei Lotus sieht das anders aus da die Installationsverzeichnisse unterschiedlich sind.
Daher prüfe ich zuerst mit "if exist" ab um welche der Versionen es sich handelt und speichere den entsprechenden Pfad zur "notes.exe" in die Variable $pfad, über "(qprocess > find nlnotes.exe >NUL) || start %$pfad%" soll dann geprüft werden, ob der Prozess "nlnotes.exe" bereits läuft, wenn nicht soll er ihn starten (über die Variable "$pfad").
Ich habe schon mehere hier in den Foren gepostete Möglichkeiten durchprobiert aber das Script hakt immer wieder bei "qprocess > find" und bricht ab. Weiß von euch jemand noch eine Möglichkeit oder entdeckt den/die Fehler?
Danke für die Hilfe,
MfG sabcat
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 106113
Url: https://administrator.de/forum/batchabfrage-zum-pruefen-ob-ein-prozess-laeuft-106113.html
Ausgedruckt am: 23.07.2025 um 01:07 Uhr
7 Kommentare
Neuester Kommentar

Servus,
das sollte laufen, obwohl ein paar Schönheitsfehler drin sind.
Nimm mal die () heraus.
Gruß
das sollte laufen, obwohl ein paar Schönheitsfehler drin sind.
set $pfad=C:\"Program Files"\Lotus\Notes\notes.exe
wäre "schönerset "$pfad=C:\Program Files\Lotus\Notes\notes.exe"
Nimm mal die () heraus.
qprocess > find nlnotes.exe || start %$pfad%
Gruß
Moin sabcat,
willkommen im Forum.
Die Ausgabe von "qprocess" soll doch nicht eine Textdatei namens "find" erzeugen, sondern die Ausgabe von "qprocess [Parameter] "find nlnotes" soll ausgewertet werden.
Also:
... oder was auch immer qprocess für eine Syntax erwartet.
Das Utility kenn ich nicht. Falls da auch noch eine Bildschrimausgabe entsorgt werden muss, dann:
Grüße
Biber
willkommen im Forum.
qprocess > find nlnotes.exe || start %$pfad%
Kann nicht sein.Die Ausgabe von "qprocess" soll doch nicht eine Textdatei namens "find" erzeugen, sondern die Ausgabe von "qprocess [Parameter] "find nlnotes" soll ausgewertet werden.
Also:
qprocess find nlnotes.exe || start %$pfad%
... oder was auch immer qprocess für eine Syntax erwartet.
Das Utility kenn ich nicht. Falls da auch noch eine Bildschrimausgabe entsorgt werden muss, dann:
qprocess > find nlnotes.exe >nul || start %$pfad%
Grüße
Biber

Servus Biber,
da hab ich doch glatt voll den Bock geschossen, aber nicht den, der dir aufgefallen ist
probier das mal aus:
"Merk"würdigerweise läuft der Befehl (zumindestens in der cmd (als batch nicht getestet)
Gruß
edit
/? hülft ja auch
da hab ich doch glatt voll den Bock geschossen, aber nicht den, der dir aufgefallen ist
probier das mal aus:
qprocess > find cmd.exe && echo yes
bzw:qprocess > find nix.exe && echo yes
"Merk"würdigerweise läuft der Befehl (zumindestens in der cmd (als batch nicht getestet)
Gruß
edit
/? hülft ja auch
qprocess nlnotes.exe && start %$pfad%
/edit
Moin sabcat,
Ändere das mal explizit in
P.S. Wenn Du Variablen SETtest in Deiner Batch und nur da, dann solltest Du auch
Grüße
Biber
So jetzt hängt es wie oben beshrieben an der If
Das kann aber auch daran liegen, dass Du unbeabsichtigt ein trailing blank am Ende dieser zuweisung stehen hast:if "%$pfad%"=="0" goto no_notes
set $pfad=0
Ändere das mal explizit in
set "$pfad=0"
P.S. Wenn Du Variablen SETtest in Deiner Batch und nur da, dann solltest Du auch
@echo off & SetLocal
...schreiben statt nur "@echo off"Grüße
Biber

Nimm mal in Zeile 10:
set $pfad=0 raus.
Zeile 20 wird dann:if %$pfad%=="" goto no_notes
gruß
edit Biber ist früher aufgestanden