Heißes Thema (mehr als 10 Antworten) Taskplaner (Gelesen: 1.805 mal)
Schnueffel



Taskplaner
06.04.03 um 11:38:23
Beitrag drucken Beitrag drucken  
Hallo!

Ich habe ein Backuptool für Outlook Express.
Bei diesem Tool ist es nicht möglich, einen automatisierten Ablaufpöan zu erstellen.

Nun hatte ich mir gedacht, benutze ich einfach den Windows TaskPlaner.
Ich hatte als Startzeit 5 Uhr morgens eingestellt. Wenn ich vorher den PC an hatte, war's ja gut, wenn nicht wurde es auch nicht ausgeführt.

Wie kann ich es bewerkstelligen, dass ich dieses Tool einmal am Tag laufen lasse?

Danke Leute

MfG

René
  
Zum Seitenanfang
 
IP gespeichert
 
cdk
Global Moderator
*****
Offline


Beiträge: 10.254
Re: Taskplaner
Antwort #1 - 06.04.03 um 14:21:51
Beitrag drucken Beitrag drucken  
Also meine Erfahrung mit dem Taskplaner ist eigentlich auch nur, daß es dann doch nicht so funktioniert wenn man will. Falls Dich das tröstet. Zwinkernd

Wenn Du mit der guten alten Batch-Prtogrammierung vertraut bist kannst Du Dir eine Batchdatei (.BAT) schreiben, die beim Systemstart prüft, ob heute schon ein Backup gemacht (über DATE eine kleine Testdatei erstellen und mit FC und FIND vergleichen ob sie vom selben Datum ist - aber der Teufel steckt im Detail).

Ansonsten würde ich damit leben, daß bei jedem Systemstart ein Backup gemacht wird.
  

Grütze, cdk

Wer Bier liebt liebt auch CO²
Zum Seitenanfang
 
IP gespeichert
 
Schnueffel



Re: Taskplaner
Antwort #2 - 06.04.03 um 15:45:12
Beitrag drucken Beitrag drucken  
Hi!

Ja, das mit dem Batch scheint eine gute Idee zu sein.
Ein bisschen weiß ich wohl davon...nur eine solche Datei zu schreiben, die etwas abgleicht, schaff ich wohl nicht.

Falls jemand etwas nähere Infos (Beispieldateien) hat, wäre es schön, wenn man mir das zur Verfügung stellen würde.

Danke!

René
  
Zum Seitenanfang
 
IP gespeichert
 
cdk
Global Moderator
*****
Offline


Beiträge: 10.254
Re: Taskplaner
Antwort #3 - 06.04.03 um 17:50:41
Beitrag drucken Beitrag drucken  
Ich würde so vorgehen:

1) Wenn das Backup durchgelaufen ist erstellt es eine Textdatei namens GETAN mit dem aktuellen Datum als Inhalt.
2) Beim Win-Start wird ebenso eine Datei namens HEUTE erstellt.
3) Im Anschluß daran wird geprüft ob GETAN existiert
4) und GETAN=HEUTE ist
5) Wenn nein ->
   a) backuppen
   b) GETAN auf HEUTE setzen
6) Wenn ja -> Ende
7) Umrühren, fertig Zwinkernd

- Prinzipiell kann man alle Hilfdateien ins Root von C: legen (das beschreibe ich hier), ästhetischer ist es aber, wenn sie im Temporärverzeichnis untergebracht werden, aber dann muß man sich ev. noch mit endlosen Pfaden herumschlagen.
- Groß-/Kleinschreibung ist in unserem Fall egal.
- Mach Dir eine Konsole auf (CMD.EXE) und laß diese offen, bis alles funktioniert. Darin startest Du von Hand Deinen Batch-Prtotyp und auch alle Kommandos, mit denen Du herumexperimentierst. Somit entgehen Dir keine Textausgaben.

Zuerst erstellst Du Dir eine Hilfs-Textdatei namens "CR" in C:\.
Diese enthält nur ein einziges <RETURN>.

Im Groben würde ich mit folgendem Schema beginnen:

---
REM @ECHO OFF
Obiges REM erst entfernen, wenn alles funktioniert, sonst ist die Fehlersuche sehr mühsam.

DATE >C:\HEUTE <C:\CR
(2) erzeugt die besagte Textdatei.
>ABC leitet die Ausgabe in Datei ABC um.
<XYZ bewirkt, daß die Eingabe von Datei XYZ besorgt wird, ansonsten müßte man beim DATE-Befehl immer von Hand <RETURN> eingeben.


IF NOT EXIST C:\GETAN GOTO BACKUP
(3) Nein: Backup machen, s.u.

FC C:\HEUTE C:\GETAN
(4) Vergleichen kann man die Dateien mit FC.EXE
Was da passiert kannst Du nachvollziehen wenn Du diese Zeile von Hand in der Konsole eingibst und zuvor beide Dateien erzeugst, einmal mit identischem Inhalt, einmal mit unterschiedlichem.


IF ERRORLEVEL 1 GOTO BACKUP
(5a) Im Rahmen der Batchdatei kannst Du von diesem Vergleich den Rückgabewert (ERRORLEVEL, hat aber nix mit Fehler zu tun...) abfragen. Bei "keine Unterschiede" ist dieser Wert 0, ansonsten 1.
Das muß direkt in der darauf folgenden Zeile geschehen. Ohne das näher zu erläutern - übernimm diese beiden oberen Zeile so wie sie da stehen und frage _nicht_ auf 0 ab, auch wenn das so etwas ungeschickt aussieht.


ECHO Backup nicht erforderlich.
GOTO ENDE
(6)

:BACKUP
DATE >C:\GETAN <C:\CR
(1&5b) erstmal unser Flag setzen. Schönheitsfehler: Keine Kontrolle ob das Backup auch anständig durchgelaufen ist.

ECHO Backup wird ausgeführt...
DEINBACKUPPROGRAMM.EXE
(5a)

:ENDE
(6), das war's im Prinzip
---

Habe das jetzt nicht ausprobiert, aber vom Prinzip her dürfte es so oder so ähnlich funktionieren.

(7) Wenn alles klappt entfernst Du, wie gesagt, das oberste REM und änderst außerdem die Zeile
FC C:\HEUTE C:\GETAN
nach
FC C:\HEUTE C:\GETAN >NUL
Dabei wird die Textausgabe von FC unterdrückt.

Das Ganze dann in einer Batchdatei namens CHECKBUP.BAT (oder wie auch immer) versenken und diese oder einen Link darauf in den Autostartordner von ALL USERS verfrachten.

Gut Holz!
  

Grütze, cdk

Wer Bier liebt liebt auch CO²
Zum Seitenanfang
 
IP gespeichert
 
Elmar Herzog
YaBB Administrator
*****
Offline


Beiträge: 3.713
Re: Taskplaner
Antwort #4 - 06.04.03 um 18:27:31
Beitrag drucken Beitrag drucken  
Hallo,

die etwas schönere (aber auch schwierigere) Variante ist, das ganze in einem WSH-Script zu hinterlegen. Mit diesen auf VisualBasic aufgebauten Scripten lassen sich sehr viele Sachen programmieren.

Frag mich aber bitte nicht, wie ein solches Script im Detail aussehen müsste. Ich habe mich nur oberflächlich mit dieser Scriptform beschäftigt.
  

Webmaster und Administrator
FAQ - Suche
Zum Seitenanfang
IP gespeichert
 
Elmar Herzog
YaBB Administrator
*****
Offline


Beiträge: 3.713
Re: Taskplaner
Antwort #5 - 06.04.03 um 18:34:45
Beitrag drucken Beitrag drucken  
Hallo,

noch was zum Thema WSH-Scripte:
Eine gute Einleitung ist unter https://www.a-coding-project.de/ratgeber/vbscript zu finden.
Falls noch Interesse an einem "Backup-Script" besteht, dann kann ich mich mal über die Ostertage hinsetzen und schauen, ob ein sinnvolles Script herauskommt...
  

Webmaster und Administrator
FAQ - Suche
Zum Seitenanfang
IP gespeichert
 
cdk
Global Moderator
*****
Offline


Beiträge: 10.254
Re: Taskplaner
Antwort #6 - 06.04.03 um 20:40:26
Beitrag drucken Beitrag drucken  
WSH meinste wohl.

Das wundert mich jetzt aber wirklich - ich dachte "Script" sei Dein zweiter Vorname. Oder benutzt Du einfach nur einen anderen Interpreter?

Und überhaupt - wie sieht denn das von wegen Sicherheitsphilosophie aus. Habe den WSH deaktiviert, dann kann er schon kein Unheil anrichten zumal ich ihn bisher auch nicht benötigt habe.
Oder habe ich da was verwechselt und das trifft in erster Linie auf die VBScripte zu? Kann man die eigentlich auch deaktivieren? Habe weder MS-Office noch VB installiert aber mein System kennt die Endung VBS dennoch...
  

Grütze, cdk

Wer Bier liebt liebt auch CO²
Zum Seitenanfang
 
IP gespeichert
 
Schnueffel



Re: Taskplaner
Antwort #7 - 07.04.03 um 06:41:53
Beitrag drucken Beitrag drucken  
Hallo!

Ja, danke zunächst für den Batch-Code. Das ist schon äußerst hilfreich, klasse.

Wenn Du über die Ostertage Zeit für das Script-Basteln hast, dann würde ich mich natürlich riesig freuen, wenn Du es hinbekommst.

Soviel Zeit ist ja auch noch!!

Danke!!

René
  
Zum Seitenanfang
 
IP gespeichert
 
Elmar Herzog
YaBB Administrator
*****
Offline


Beiträge: 3.713
Re: Taskplaner
Antwort #8 - 08.04.03 um 19:02:29
Beitrag drucken Beitrag drucken  
Hallo,

@cdk: Test bestanden! Wenigstens hat einer den Tippfehler bemerkt.  Zwinkernd

Schnueffel: Mal sehen, was sich machen lässt.

Tja, VB ist tief im Windowssystem verankert. Auch wenn Du es deaktiviert hast, kann man VB-Scripte ausführen lassen. Probier's mal aus. Siehe Link weiter oben.
  

Webmaster und Administrator
FAQ - Suche
Zum Seitenanfang
IP gespeichert
 
cdk
Global Moderator
*****
Offline


Beiträge: 10.254
Re: Taskplaner
Antwort #9 - 08.04.03 um 19:33:00
Beitrag drucken Beitrag drucken  
Ein Bekannter hat das vor 2 Jahren mal leidvoll erfahren: Da kam ein Virus im Stil von HARMLOSERTEXT.TXT.VBS als Mailattachment reingeschneit.

Weiterhin hatte er noch die Dumpfuseroption "Dateiendungen ausblenden" aktiviert, sodaß sich das possierliche Tierchen darstellte als HARMLOSERTEXT.TXT und er fröhlich draufgeklickt hatte.

Beim nächsten Booten hat er dann gemerkt daß wohl was schiefgelaufen ist...

Nun und da er den Schaden hatte, brauchte er für meinen Spott nicht zu sorgen, zumal wir's einige Wochen zuvor noch von dieser o.g. Option hatten. *fg*
  

Grütze, cdk

Wer Bier liebt liebt auch CO²
Zum Seitenanfang
 
IP gespeichert
 
Elmar Herzog
YaBB Administrator
*****
Offline


Beiträge: 3.713
Re: Taskplaner
Antwort #10 - 20.04.03 um 21:06:04
Beitrag drucken Beitrag drucken  
Hallo,

wie versprochen, hier ein kleines VB-Script.

Wichtiger Hinweis:
Die Benutzung der nachfolgenden Information(en) und Script(e) erfolgt auf eigene Gefahr!

Anmerkungen zum Script:
Die Parameter BackupFile und BackupPrg müssen natürlich den eigenen Pfaden und Namen angepasst werden. Bei BackupPrg handelt es sich um das Backup-Programm. BackupFile kennzeichnet die Backup-Datei. Falls die Backup-Datei vorhanden ist, dann wird das letzte Änderungsdatum ermittelt. Falls dieses nicht mit dem aktuellen Datum übereinstimmt, dann wird das Backup-Programm gestartet. Wenn die Backup-Datei nicht vorhanden ist, so wird beim Anwender nachgefragt, ob das Backup-Programm gestartet werden soll.

Anwendung:
Nachfolgendes Script kopieren und als z.B.: "Backup.vbs" speichern. Anschliessend eine Verknüpfung in den Autostart-Ordner o.ä. anlegen.

Code
Alles auswählen
' Copyright (C) Windowspage 2003. Alle Rechte vorbehalten.
' Autor: ELmar Herzog

' Hier an eigene Bedürfnisse anpassen
BackupFile = "C:\Backup.dat"
BackupProg = "C:\Bachup\Backup.exe"

' Backup-Programm vorhanden?
Set fbk = CreateObject("Scripting.FileSystemObject")
if not fbk.FileExists(BackupProg) Then
  MsgBox "!!! ACHTUNG !!!" & vbCrLf & "Das Programm »" & BackupProg & "« wurde nicht gefunden - Programmabbruch!", vbOKOnly or vbExclamation, "Warnung"
  WScript.Quit
End If

' Datei suchen und Datum ermitteln
Set fso = CreateObject("Scripting.FileSystemObject")
if not fso.FileExists(BackupFile) Then
  ' Falls die Datei nicht vorhanden ist, dann Nachfrage, ob Programm gestartet werden soll
  If MsgBox ("Die Datei »" & BackupFile & "« wurde nicht gefunden." & vbCrLf & "Soll das Programm »" & BackupProg & "« gestartet werden?", vbYesNo or vbQuestion, "Frage") = vbNo Then
    WScript.Quit
  Else
    ' Programm starten, falls Antwort JA ist
    Set Shl = CreateObject("WScript.Shell")
    Shl.Run BackupProg
    WScript.Quit
  End If
End If
Set f1 = fso.GetFile(BackupFile)
fd = f1.DateLastModified

' Dateidatum mit aktuellem Datum vergleichen
d1 = Right("0" & Day(Now), 2) & "." & Right("0" & Month(Now), 2) & "." & Year(Now)
d2 = Right("0" & Day(fd), 2)  & "." & Right("0" & Month(fd), 2)  & "." & Year(fd)
if not d1 = d2 Then
  'Falls das Datum nicht dem heutigen Tag enspricht, dann das Programm starten
  Set Shell = CreateObject("WScript.Shell")
  Shell.Run BackupProg
End If 

  

Webmaster und Administrator
FAQ - Suche
Zum Seitenanfang
IP gespeichert
 
 
  « Übersicht ‹ Forum Nach oben