Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batchabfrage zum Prüfen ob ein Prozess läuft

Frage Microsoft Windows Tools

Mitglied: sabcat

sabcat (Level 1) - Jetzt verbinden

15.01.2009, aktualisiert 10:43 Uhr, 9706 Aufrufe, 7 Kommentare

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.

01.
@echo off 
02.
 
03.
title Lotus Notes starten und Word-Makro-Sicherheit auf Mittel setzen 
04.
 
05.
cls 
06.
 
07.
regedit /s N:\ADB\Bat\WordSecurity_middle.reg 
08.
 
09.
set $pfad=0 
10.
 
11.
:: für Mobility Windows wird Notes mit Angabe zum INI-File gestartet, vgl. Icon) 
12.
if exist C:\Programme\Lotus\Notes\notes.exe (set $pfad=C:\Programme\Lotus\Notes\notes.exe =Z:\Lotus-Notes-Data\notes.ini) 
13.
 
14.
if exist C:\"Program Files"\Lotus\Notes\notes.exe (set $pfad=C:\"Program Files"\Lotus\Notes\notes.exe) 
15.
 
16.
if "%$pfad%"=="0" goto no_notes 
17.
 
18.
(qprocess > find nlnotes.exe >NUL) || start %$pfad% 
19.
goto end 
20.
 
21.
:no_notes 
22.
echo Lotus Notes nicht gefunden, bitte manuell starten. 
23.
pause 
24.
goto end 
25.
 
26.
:end 
27.
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,

Mit freundlichen Grüßen sabcat
Mitglied: 60730
15.01.2009 um 11:46 Uhr
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.
qprocess > find nlnotes.exe || start %$pfad%

Gruß
Bitte warten ..
Mitglied: sabcat
15.01.2009 um 13:17 Uhr
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?
Bitte warten ..
Mitglied: Biber
15.01.2009 um 13:19 Uhr
Moin sabcat,

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
Bitte warten ..
Mitglied: 60730
15.01.2009 um 13:27 Uhr
Servus Biber,

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
Bitte warten ..
Mitglied: sabcat
15.01.2009 um 13:44 Uhr
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:
01.
@echo off 
02.
 
03.
title Lotus Notes starten und Word-Makro-Sicherheit auf Mittel setzen 
04.
 
05.
cls 
06.
 
07.
regedit /s N:\ADB\Bat\WordSecurity_middle.reg 
08.
echo Word Makrosicherheit auf Stufe Mittel gesetzt. 
09.
 
10.
set $pfad=0 
11.
 
12.
:: für Mobility Windows wird Notes mit Angabe zum INI-File gestartet, vgl. Icon) 
13.
if exist C:\Programme\Lotus\Notes\notes.exe (set $pfad=C:\Programme\Lotus\Notes\notes.exe  
14.
 
15.
=Z:\Lotus-Notes-Data\notes.ini) 
16.
 
17.
if exist C:\"Program Files"\Lotus\Notes\notes.exe (set $pfad=C:\"Program Files"\Lotus\Notes\notes.exe) 
18.
echo pfad=%$pfad% 
19.
 
20.
if "%$pfad%"=="0" goto no_notes 
21.
 
22.
qprocess find nlnotes.exe || start %$pfad% 
23.
goto end 
24.
 
25.
:no_notes 
26.
echo Lotus Notes nicht gefunden, bitte manuell starten. 
27.
pause 
28.
goto end 
29.
 
30.
:end 
31.
set $pfad=
So jetzt hängt es wie oben beshrieben an der If
if "%$pfad%"=="0" goto no_notes
Bitte warten ..
Mitglied: Biber
15.01.2009 um 18:10 Uhr
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
Bitte warten ..
Mitglied: 60730
15.01.2009 um 18:14 Uhr
Zitat von sabcat:
So jetzt hängt es wie oben beshrieben an der If
if "%$pfad%"=="0" goto no_notes



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
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Visual Studio
gelöst Remotedienst prüfen mit Visual Basic (1)

Frage von flyingmichael zum Thema Visual Studio ...

Voice over IP
Mysterium Fax über VoIP - was man tun kann, damit es besser läuft (7)

Anleitung von LordGurke zum Thema Voice over IP ...

Exchange Server
Exchange 2013 Health Mailbox läuft voll (4)

Frage von bootloader zum Thema Exchange Server ...

Windows 7
Win 7 Keine Updates - Ewige Suche - WSUS läuft nicht (19)

Frage von metal-shot zum Thema Windows 7 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (17)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...