akchris
Goto Top

Script beim Herunterfahren des Rechners soll eine von fünf Dateien, je nach Wochentag, ausführen. Montag - Datei 1, Dienstag - Datei 2, usw

Hallo Administrator Forum!

Ich habe leider noch nicht sehr viel erfahrung mit batches / scripts / kommandozeilen eingaben, möchte aber hier doch etwas dazu lernen.

Der Anlass für meinen Thread ist, das ich ein paar Backup-Sachen automatisieren möchte und das alles möglichst mit Windows Bordmitteln, ohne das teure- oder resourcenfressende Software nachinstalliert werden muss.

Mein Ziel:

Beim Herunterfahren eines Clients soll die outlook.pst Datei erst komprimiert (Outlook interen funktion) und dann per NTBackup jeweils in den Container Monatg.bkf, Dienstag.bkf usw gesichert werden.

Mein Stand im moment:

- ich habe bereits eine komprimieren.exe die mir die Outlook Datei selbstständig komprimiert

- ich habe 5 .cmd files in denen jeweils die NTBackup kommandozeile ist, die in den richtigen .bkf container sichert:
Beispiel für die Sicherung am Montag:
ntbackup backup "@\\Server\NTBackup Auftragsdateien\pc0004.bks" /j "Sicherung Montag" /a /f "\\Server\PC0004\E-Mail Aktuelle Outlook.pst\Montag.bkf" /d "Sicherung Montag"

- ich weiss wo ich das script zum abmelden unterbringen muss:
Ausführen -> gpedit.msc öffnet die Gruppenrichtlinien
Benutzerkonfiguration -> Windows Einstellungen -> Skripts (Anmelden/Abmelden) -> Abmelden

Mir fehlt noch:
- ein Script das automatisch den Wochentag erkennt und dann beim Herunterfahren des PC's erst die komprimieren.exe und dann jeweils die richtige .cmd für montag, dienstag, usw. ausführt. Wichtig ist hier noch das das ausführen der .cmd datei erst geschieht wenn die komprimieren.exe fertig ist.

mfg

Chris

Content-Key: 151953

Url: https://administrator.de/contentid/151953

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: bastla
bastla 28.09.2010, aktualisiert am 18.10.2012 um 18:43:37 Uhr
Goto Top
Hallo gluvbaby!

Zum Thema "Wochentag in Batch" gibt es neben einem einschlägigen Wochentag mit Batch ermitteln" ...
Hinsichtlich des Wartens, bis die "komprimieren.exe" fertig ist: start /wait
Im übrigen sollte es nicht nötig sein, 5 verschiedene Batches zu verwenden - einfach den Wochentag als Variable einsetzen ...

Grüße
bastla
Mitglied: 90776
90776 28.09.2010 um 16:22:20 Uhr
Goto Top
Hier wäre noch das script:

FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a  
set /a "TwoDigitYearMax=2038%%1000"  
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1

If %dow% equ 1
If %dow% equ 2
If %dow% equ 3
If %dow% equ 4
If %dow% equ 5
If %dow% equ 6
If %dow% equ 7

einfach bei den if abfragen noch schreiben was gemacht werden soll

Grüsse Switcher
Mitglied: AKChris
AKChris 29.09.2010 um 11:30:09 Uhr
Goto Top
Danke ihr 2 face-smile

Hat etwas gedauert aber jetzt funktioniert alles. Falls ihr noch Verbesserungsvorschläge oder Ergänzungen habt tut euch keinen Zwang an, wie gesagt ich kenne mich nicht so aus und weiss nicht ob es da vielleicht noch sinnvolle zusätze gibt. Wäre es möglich so etwas wie eine Art Log Datei zu erstellen um zu sehen ob ein Fehler auftritt ? (Datei nicht schreibbar, Netzwerkfreigabe ist nicht erreichbar, Speicher voll oder so?)

@echo off 

REM Startet die compress.exe im SilentMode um die PST Dateien selbstständig zu komprimieren. Mit "/wait" wird mit dem weiteren ausführen des Scripts gewartet bis die compress.exe beendet ist.  
REM ##################
start /wait \\Akserver\Scripte\Autocompress\compress.exe /s

REM erzwingt das beenden von Outlook 2007
REM ##################
taskkill /im outlook.exe /f

REM Berechnung des Wochentages
REM Hier eventuell Reihenfolge und delims anpassen
REM ##################
FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a   

set /a "TwoDigitYearMax=2038%%1000"   
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%) 
set /a dd=100%dd%%%100,mm=100%mm%%%100 
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2 
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1 

REM Zuordnung Wochentag
REM ##################
If %dow% equ 1 set "WoTa=Montag"   
If %dow% equ 2 set "WoTa=Dienstag"   
If %dow% equ 3 set "WoTa=Mittwoch"   
If %dow% equ 4 set "WoTa=Donnerstag"   
If %dow% equ 5 set "WoTa=Freitag"   
If %dow% equ 6 set "WoTa=Samstag"   
If %dow% equ 7 set "WoTa=Sonntag"   

REM Gibt zur Kontrolle den Wochentag aus
REM ##################
REM echo Heute ist %WoTa%

REM Mit NTBackup die Outlook Datei auf dem Server Sichern
REM ##################
REM "@\\Akserver\Scripte\NTBackup Auftragsdateien\pc0004.bks"  
REM Benutzt die hinterlegte Auftragsdatei
REM ##################
REM /j "Sicherung %WoTa%"  
REM Job-Name mit Variablem Wochentag
REM ##################
REM /a /f "\\Akserver\PC0004\E-Mail Aktuelle Outlook.pst\%WoTa%.bkf"  
REM Hängt die neue Sicherung an die jeweilige Sicherungsdatei für den aktuellen Wochentag an. Sollte die Datei noch nicht existieren wird diese erstellt.
REM ##################
REM /d "Sicherung %WoTa%"  
REM Beschreibung für die Sicherung
REM ##################
ntbackup backup "@\\Akserver\Scripte\NTBackup Auftragsdateien\pc0004.bks" /j "Sicherung %WoTa%" /a /f "\\Akserver\PC0004\E-Mail Aktuelle Outlook.pst\%WoTa%.bkf" /d "Sicherung %WoTa%"  
Mitglied: 90776
90776 29.09.2010 um 19:05:25 Uhr
Goto Top
hi

könntest vielleicht noch mit
den Errorleveln der prozesse arbeiten
und mit z.b.
if not exist monag.bak echo Sicherung fehlgeschlagen > log.txt

Grüsse Swichter