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
GELÖST

Batchabfrage ob eine Batch bereits läuft Wenn nicht dann STARTEN

Frage Microsoft Windows Tools

Mitglied: backfight

backfight (Level 1) - Jetzt verbinden

22.03.2007, aktualisiert 26.03.2007, 9653 Aufrufe, 16 Kommentare

Hi,
ich habe eine Batchdatei die Permanent laufen muss. Leider tut sie das nicht sondern beendet sich einfach von alleine. Das möchte ich mit einer weiteren Batch absichern.

Spricht: Eine Batch schreiben die permanent abfragt ob die andere Batch noch läuft - Wenn nicht dann soll sie neu gestartet werden.

Habs mal so versucht aber irgendwie ist da nen Bug drinne (am Beispiel Taschenrechner):

@echo off
(qprocess > find calc.exe >NUL: 2>&1)|| start calc.exe
if errorlevel 1 goto error
goto ende
:error
echo Der Taschenrechner lauft bereits.
:ende
pause

Kann mir da jemand helfen?


Gruß
Backfight
Mitglied: 45426
22.03.2007 um 15:53 Uhr
Der Errorlevel stimmt nicht. ;)

So geht's:

@echo off
qprocess > find calc.exe >NUL: 1>&2
rem || start calc.exe

if errorlevel 1 goto :starten
echo Der Taschenrechner laeuft bereits
goto ende

:starten
echo Der Taschenrechner wird gestartet.
start calc.exe

:ende
pause


oder so:
01.
(qprocess > find calc.exe >NUL) || Start calc.exe
Bitte warten ..
Mitglied: backfight
22.03.2007 um 15:56 Uhr
Bei mir klappt es immernoch nicht

es kommt der fehler:
Der Befehl "qprocess" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Der Taschenrechner wird gestartet.

Und wie kann ich es bewerkstelligen das ich die batch aufrufe und sie permanent abfragt ob der taschenrechner läuft? und sobal er aus ist wieder gestartet wird?
Bitte warten ..
Mitglied: 45426
22.03.2007 um 16:31 Uhr
qprocess.exe sollte in %windir%\system32 vorhanden sein.

mit der Datei startest du
01.
start /MIN calcbatch.cmd
diese calcbatch.cmd-Datei:

01.
@echo off 
02.
:loop 
03.
(qprocess > find calc.exe >NUL) ||cls & calc.exe 
04.
goto loop

Beenden kannst du das Ganze durch Schließen der Batch.
Die Sache hat natürlich einen Haken: CMD.EXE ist ständig im Hintergrund aktiv.
Bitte warten ..
Mitglied: backfight
22.03.2007 um 17:33 Uhr
Super danke! Genau das hab ich gewollt!
Bitte warten ..
Mitglied: Biber
22.03.2007 um 18:00 Uhr
Na ja,

kleinere Verbesserungsvorschläge hätte ich aber noch....

Erstens nicht alle Prozesse abfragen, sondern nur den gesuchten.
Zweitens mit "|" pipen statt mit ">" eine Datei "Find" erzeugen.

Selbst mit richtigem Pipe-Symbol geht der Plan dann erstmal schief...
Denn "calc.exe" wird auf jeden Fall gefunden, da die Fehlermeldung von qprocess so aussieht:
"Für calc.exe ist kein Prozess vorhanden"
Also kommt hier neimals der Nicht-gefunden-Fall vor [Test am CMD-Prompt]:
01.
>qprocess calc.exe|find "calc.exe" 
02.
Für calc.exe ist kein Prozess vorhanden
Wenn überhaupt, dann könnte der Schnipsel so aussehen:
01.
@echo off 
02.
:loop 
03.
(qprocess calc.exe 2>nul |find "calc.exe" >NUL) ||cls & calc.exe 
04.
goto loop
Gruss
Biber
Bitte warten ..
Mitglied: 45426
22.03.2007 um 18:05 Uhr
1. geht der Plan nicht schief, die Batch läuft nämlich einwandfrei.

2. öffnet deine Batch bei jedem Start eine neue Instanz von calc.exe.

3. macht meine das auch.

Es ist also gemopst wie gedackelt.

:-p
Bitte warten ..
Mitglied: Biber
22.03.2007 um 18:18 Uhr
Na, hpdm,

bei mir wird mit Deiner Variante folgendes angelegt:
01.
>dir find 
02.
 Datenträger in Laufwerk Y: ist BIBERSBESTER 
03.
 Volumeseriennummer: 0815-4711 
04.
 
05.
 Verzeichnis von D:\temp 
06.
 
07.
22.03.2007  18:14                 0 find 
08.
               1 Datei(en)              0 Bytes
Bei Dir nicht?

Gruss Biber
Bitte warten ..
Mitglied: 45426
22.03.2007 um 18:22 Uhr
Nein, bei mir nicht.

Ich hab's gerade nochmal in der Startpartition (NTFS) probiert, auch da wird keine Datei "find" angelegt. Die Tests hatte ich auf meinem Ramdrive durchgeführt.
Bitte warten ..
Mitglied: backfight
22.03.2007 um 19:09 Uhr
also bei mir läuft alles bestens - keine probleme
Bitte warten ..
Mitglied: 45426
22.03.2007 um 19:32 Uhr
Du solltest die Startdatei nochmal überschreiben mit
01.
qprocess > find calc.exe >NUL || start /MIN calcbatch.cmd
Das verhindert einen Mehrfachstart.
Die Calcbatch.cmd nicht von Hand starten!
Bitte warten ..
Mitglied: backfight
22.03.2007 um 19:39 Uhr
kann ich nicht nachvollziehen bei mir läufts normal....


wenn ichs aus der cmd aufrufe und wenn ichs so aufrufe??
Bitte warten ..
Mitglied: 45426
22.03.2007 um 19:41 Uhr
Wenn du bisher den "Anleiern"-Batch mehrfach aufgerufen hast, hat er auch mehrere Fenster aufgemacht. Das habe ich geändert.
Bitte warten ..
Mitglied: backfight
23.03.2007 um 12:50 Uhr
also mit der calc.exe funktioniert das alles bestens, denke mal weils ne standart windows exe ist.

sobald ich das mit ner batch versuche...also aus unserer batch eine batch aufrufen, funktioniert es nicht da er sie nicht findet.

muss ich da nen pfad angeben oder wie läuft das?

Gruß backfight
Bitte warten ..
Mitglied: 45426
23.03.2007 um 13:01 Uhr
Eine Batch-Datei läuft unter dem Process CMD.exe, und der ist ja dann schon gestartet. Die Batch wirst du also nicht finden.

PS. standart gibt es nicht, nur entweder die Standarte oder den Standard
Mir dreht sich jedes Mal der Magen um, wenn ich das lesen muss.
http://de.wikipedia.org/wiki/Standart
Bitte warten ..
Mitglied: Biber
23.03.2007 um 13:39 Uhr
Moin hpdm,
> Mir dreht sich jedes Mal der Magen um, wenn ich das lesen muss
Da ist Dein Magen aber ständig in Bewegung hier im Forum...
Bitte warten ..
Mitglied: backfight
26.03.2007 um 07:17 Uhr
hi,
weiß denn dann noch jemand ne Lösung fürs Problem?

Gruß
Backfight
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...