Start-Batchdatei mit Laufcheck

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

Antworten
koelschwetter

Start-Batchdatei mit Laufcheck

Beitrag von koelschwetter »

Hallo,

bei mir wird pswin (Pc-Wetterstation) halbstündlich vom Cronjob ausgeführt, dabei soll auch ein Mailreport und auch die Daten an externe Versand werden.
So spare ich Resourcen auf dem System und ich kann das Programm im Hintergrund, wenn kein User angemeldet ist, starten.

Da es verschiedene Optionen gibt, soll die Batchdatei die Uhrzeit prüfen und gegebenenfalls entsprechende Aktionen ausführen.

Zudem darf die exe nur einmal ausgeführt werden, denn ansonsten ist der COM-Port nicht erreichbar.
Ältere Programmstarts, die noch im Speicher sind, werden dann versucht zu schließen (Freeware Programm PV.exe erforderlich, http://www.mac-net.com/428484.page), bei Fehler, wird das Programm dann nicht ein zweites mal gestartet.

Anregungen und hinweise an mich.

Grüße Erik

Hier die Batch-Datei:

Code: Alles auswählen

@echo off
rem Programm wetterstart von Erik Groennerud
rem (c) www.koelschwetter.de 22.1.2007

rem freie Nutzung und Weitergabe, sofern dieser Kopf enthalten bleibt

rem Programm analysiert die Uhrzeit und startet dementsprechend das Programm mit verschiedenen Optionen.

rem Diese Batchdatei wird alle 30 Minuten zur vollen Stunde vom Taskmanager ausgeführt.

rem Um 12 Uhr wird ein Mailreport generiert

rem Alle 6 Stunden werden die Wetterdaten an die externen Dienste weitergeleitet.

rem NUTZUNG AUF EIGENE GEFAHR!!



rem Uhrzeit für Auswertung formatieren
for /F "tokens=1,2 delims=:, " %%i in ('time /T') do set time=%%i%%j

rem Variablen setzen
set exe=C:\Programme\WsWin\Wswin32.exe
set option_default=/auto
set option_mailreport=/ER
set option_datenversand=/WA
set exefile=Wswin32.exe
set info=0


REM Check, ob Programm bereits gestartet wurde, alte Version wird dann beendet.

for /F "tokens=1-7" %%a in ('tasklist /NH /FI "imagename eq %exefile%"') do ( ; if "%%a"=="%exefile%" set info=1
)
goto %info%

:1
	Echo Das Programm %exefile% laeuft bereits auf diesem System. Zweiter Start ist nicht erlaubt. Daher wird nun versucht den zweiten Aufruf zu beenden
	pv -f -k %exefile%
	
	REM Erneuter check
	set info=0
	for /F "tokens=1-7" %%a in ('tasklist /NH /FI "imagename eq %exefile%"') do ( ; if "%%a"=="%exefile%" set info=11
	)
	goto %info%



:0
	Echo Programm ist nicht geladen.


REM Startlogic


rem Logic - 12 Uhr Mailreport, 0:30, 6:30, 12:30, 18:30 Uhr Datenversand, sonst einfache Auswertung
if %time% EQU 1200 ( 
	echo Mailreport Versenden
	%exe% %option_default% %option_mailreport%
	) else (
	  
		if %time% EQU 0030 (
			echo Daten übertragen
			%exe% %option_default% %option_datenversand%
			goto ende
		)
	
		if %time% EQU 0630 (
			echo Daten übertragen
			%exe% %option_default% %option_datenversand%
			goto ende
		)
	
		if %time% EQU 1230 (
			echo Daten übertragen
			%exe% %option_default% %option_datenversand%
			goto ende
		)
	
		if %time% EQU 1830 (
			echo Daten übertragen
			%exe% %option_default% %option_datenversand%
			goto ende
		)

	  echo Nur Auswertung
		%exe% %option_default%
	  
	)

:ende
:11
Zuletzt geändert von koelschwetter am 23 Jan 2007 15:22, insgesamt 1-mal geändert.
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo Erik,
da hast Du ja tief in die DOS-Kiste gegriffen. Wenn es denn funktioniert (habe im Moment keine Zeit zum Testen), kann es sicher für den einen oder anderen mehr als hilfreich sein.
Ich würde sagen: wenn es jemand nutzt, sollte er ruhig mal eine Rückmeldung hier bringen und auch angeben, ob es auf dem betreffenden System einwandfrei läuft.
koelschwetter

Beitrag von koelschwetter »

weneu hat geschrieben:Hallo Erik,
da hast Du ja tief in die DOS-Kiste gegriffen. Wenn es denn funktioniert (habe im Moment keine Zeit zum Testen), kann es sicher für den einen oder anderen mehr als hilfreich sein.
Ich würde sagen: wenn es jemand nutzt, sollte er ruhig mal eine Rückmeldung hier bringen und auch angeben, ob es auf dem betreffenden System einwandfrei läuft.
Hallo,

bei mir ist es im Einsatz und funktioniert recht gut... ,-)
Habe das Rad zum Glück nicht extra hierfür komplett neu erfinden müssen. Teilbereiche hatte ich schon in einigen anderen Scripten verbaut... ,-)

Viel Spaß mit dem Script.

Erik
Antworten