sabcat

Batchabfrage zum Prüfen ob ein Prozess läuft


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.


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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 106113

Url: https://administrator.de/forum/batchabfrage-zum-pruefen-ob-ein-prozess-laeuft-106113.html

Ausgedruckt am: 27.04.2025 um 00:04 Uhr

60730
60730 15.01.2009 um 11:46:26 Uhr
Goto Top
Servus,

das sollte laufen, obwohl ein paar Schönheitsfehler drin sind.

set $pfad=C:\"Program Files"\Lotus\Notes\notes.exe
wäre "schöner
set "$pfad=C:\Program Files\Lotus\Notes\notes.exe"

Nimm mal die () heraus.

Gruß
sabcat
sabcat 15.01.2009 um 13:17:17 Uhr
Goto Top
Danke für die Antwort.

Wenn ich
set $pfad=C:\"Program Files"\Lotus\Notes\notes.exe
zu
set "$pfad=C:\Program Files\Lotus\Notes\notes.exe"
ändere kommt der Fehler "Windoes cannot fond 'C:\Program' please try [...]", also habe ich es wie oben gelassen.

Die Klammern habe ich heraus genommen, allerdings lief das Script dann immer noch nicht durch. jetzt habe ich
if "%$pfad%"=="0" goto no_notes
raus genommen und es funktioniert. Ich möchte aber ungern auf die Abfrage verzichten, der Code scheint aber richtig zu sein.

Kann es sein, dass die If-Abfrage das Script beendet wenn der Fall nicht zutrifft?
Biber
Biber 15.01.2009 um 13:19:06 Uhr
Goto Top
Moin sabcat,

willkommen im Forum.

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:

... 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
60730
60730 15.01.2009 um 13:27:53 Uhr
Goto Top
Servus Biber,

da hab ich doch glatt voll den Bock geschossen, aber nicht den, der dir aufgefallen ist face-wink

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 face-wink
qprocess nlnotes.exe && start %$pfad%
/edit
sabcat
sabcat 15.01.2009 um 13:44:26 Uhr
Goto Top
qprocess scheint nicht sonderlich wählerisch zu sein, hab das gerade auch alles mit einer batch getestet, funktioniert auch alles.

Das qprocess-Problem ist also erledigt, aktueller Stand des gesamten Scripts:
@echo off

title Lotus Notes starten und Word-Makro-Sicherheit auf Mittel setzen

cls

regedit /s N:\ADB\Bat\WordSecurity_middle.reg
echo Word Makrosicherheit auf Stufe Mittel gesetzt.

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)  
echo pfad=%$pfad%

if "%$pfad%"=="0" goto no_notes  

qprocess find nlnotes.exe || start %$pfad%
goto end

:no_notes
echo Lotus Notes nicht gefunden, bitte manuell starten.
pause
goto end

:end
set $pfad=
So jetzt hängt es wie oben beshrieben an der If
if "%$pfad%"=="0" goto no_notes
Biber
Biber 15.01.2009 um 18:10:07 Uhr
Goto Top
Moin sabcat,

So jetzt hängt es wie oben beshrieben an der If
if "%$pfad%"=="0" goto no_notes
Das kann aber auch daran liegen, dass Du unbeabsichtigt ein trailing blank am Ende dieser zuweisung stehen hast:

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
60730
60730 15.01.2009 um 18:14:44 Uhr
Goto Top
Zitat von @sabcat:
So jetzt hängt es wie oben beshrieben an der If
if "%$pfad%"=="0" goto no_notes

face-wink

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 face-wink
Heiß diskutiert
kreuzbergerGängelung, neu erfunden. Diesmal: SYNOLOGYkreuzberger - 37 KommentareStefanKittelMail-Server mit IPv6 sind kein Standard?StefanKittel - 21 KommentarekreuzbergerLTFS und LTO5-Laufwerke im DELL TL4000kreuzberger - 17 KommentareStefanKittelSMTP Relay gesuchtStefanKittel - 17 KommentareYan2021Mauszeiger springt während Backup od. Programm-Installation etcYan2021 - 16 KommentarespinnifexMein Explorer bringt mich zum Wahnsinn (Einstellungen merken)spinnifex - 14 KommentarefloriaugsBackup Cloud - Empfehlungfloriaugs - 14 KommentareYan2021Thunderbolt USB-C auf USB-A Stecker bessere Lösung?Yan2021 - 14 KommentareNominisHeimnetzwerk - Aufteilung aktualisierenNominis - 13 KommentareLordReaperRDP Sessions trennen sich 1-2x täglichLordReaper - 12 KommentarekreuzbergerRDP auf dem iPadkreuzberger - 11 KommentareSurfer12Neue Telefonanlage konventionell oder IPSurfer12 - 11 KommentareStefanKittelEin Maillink in einer Mail in O365 Classic führt zu New Outlook?StefanKittel - 11 Kommentare