Axels Homepage


Sie sind hier: » PC + Co. » mehr BAT-Skripte » Run_if_older
Tipp
In der Quicksearch-Box rechts können Sie den Namen eines Windows-Kommandos oder Kommandozeilentools eingeben und kommen so schnell zu dessen Beschreibung.

BATch-Dateien - Run If Older

Einleitung
Aufruf
History
Anforderungen
Download

Einleitung

Auf einem ständig laufenden Server richtet man wiederkehrende Dienste einfach mit vorgegebenen Zeiten im Taskplaner ein. Und daheim der PC - wenn man dort Routineaufgaben per Taskplaner erledigen möchte, muss der PC zu ebenjener Zeit eingeschaltet sein. Zumeist ist er das nicht.

RUN_IF_OLDER ist eine Batch-Datei, die ein Programm nur dann ausführt, wenn die als Parameter angegebene Datei das letzte mal vor n Tagen ausgeführt worden ist. Damit hat man die Möglichkeit, einen Task mit einer bestimten Aufgabe jede Stunde einmal auszuführen, aber die eigentliche Aufgabe wird immer nur alle paar Tage gestartet.

Das funktioniert so:
In einer Textdatei merkt sich RUN_IF_OLDER, wann ein Skript das letzte Mal erfolgreich ausgeführt worden ist. Soll ein Programm gestartet werden, wird in dieser Textdatei das Datum der letzten Ausführung extrahiert. Ist die Differenz grösser als ein mitgegebenes Mindestalter in Tagen oder exisitert noch kein Eintrag, wird das Programm gestartet.


Seitenanfang


Aufruf

Das Skript braucht 2 Parameter. Optional kann man als dritten Parameter ein sinnvolles Label mitgeben, mit dem die Zeit gespeichert wird. Fehlt der 3. Parameter, wird der Programmname als Label verwendet.

run_if_older [n] [script/ program to execute] [Label]
  [n] Anzahl der Tage
  [script/ program to execute]
  [label] Label (optional)

Beispiel:
Wenn ich ein Skript zum Defragmentieren der Disk habe, das einmal pro Woche starten soll, wähle ich ein Zeitraum vom 7 Tagen. Das Skript unter D:\Skripte\. Zum Speichern des Ausführungsdatums gebe ich ein Label "defrag_all_hd" mit.
Im Taskplaner kann man ab 00:02 stündlich einen solchen Aufruf eintragen:

C:\bin\run_if_older 7 D:\Skripte\defrag_all_hd_drives.bat defrag_all_hd
run_if_older-Aufruf im Taskplaner

Der erste Aufruf führt zum Ausführen des Defragmentier-Skripts. Die Ausführungszeit wird in einem Textfile lastrun.txt gespeichert:
2007-06-10 19:02:00 defrag_all_hd 

Alle weiteren Aufrufe werden diesen Zeitstempel mit dem aktuellen Datum vergleichen.


Seitenanfang


History

  • 04.10.2008 - V1.1
    Parameter /Y beim Move-Kommando hinzugefügt
  • 10.06.2007 - V1.0
    erste öffentliche Version

Seitenanfang


Anforderungen

  • Windows XP (andere Versionen habe ich nicht getestet)
  • Mein Tool showdate im selben Ordner.
  • Schreibrechte auf die Datei lastrun.txt im selben Ordner.

Seitenanfang


Download:

Die Bat-Datei (ohne Showdate; dieses müssen Sie in den Ordner der Bat-Datei koipieren):
run_if_older.zip (1 kB)

... inkl. Showdate:
run_if_older_complete.zip (23 kB)


Seitenanfang

 
©2010 by Axel Hahn - powered by
Valid HTML 4.01!