Top-Themen

Aktuelle Themen (A bis Z)

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 Problem bei BAT fuer monatl. Archivierung

Mitglied: RF1986

RF1986 (Level 1) - Jetzt verbinden

03.01.2008, aktualisiert 25.02.2008, 3244 Aufrufe, 4 Kommentare

Hallo. Ich hoffe, jemand findet den Fehler.

Das folgende Script soll am 1. Tag eines jeden Monats ausgeführt werden und
Dateien in einen Ordner verschieben, der mit dem Datum des Vormonats benannt ist.

Eigentlich klappt das auch wie ich es mir vorstelle, ABER:
Beim Testen hab ich u.a. versucht, am 1. August und 1. September ein Backup zu erstellen.
Alle anderen Monate machen keine Probleme.
Eigentlich müssten ja "Archiv\2008-07" und "Archiv\2008-08" erstellt werden.
Es wird aber jeweils "Archiv\2007-12" erstellt.

01.
@echo off
02.
setlocal
03.
rem Datum auslesen
04.
set tag=%date:~-10,2%
05.
set monat=%date:~-7,2%
06.
set jahr=%date:~-4%
07.
set stunde=%time:~-11,2%
08.
if %stunde% LSS 10 set stunde=0%time:~-10,1%
09.
set minute=%time:~-8,2%
10.
set sekunde=%time:~-5,2%
11.
 
12.
set /a tag-=1
13.
if %tag% LEQ 0 set /a monat-=1
14.
if %monat% LEQ 0 set /a jahr-=1 & set monat=12
15.
 
16.
if %tag% GEQ 1 goto :done
17.
rem Tag im Vormonat, Tag anpassen
18.
if %monat% EQU 1 set tag=31
19.
if %monat% EQU 3 set tag=31
20.
if %monat% EQU 4 set tag=30
21.
if %monat% EQU 5 set tag=31
22.
if %monat% EQU 6 set tag=30
23.
if %monat% EQU 7 set tag=31
24.
if %monat% EQU 8 set tag=31
25.
if %monat% EQU 9 set tag=30
26.
if %monat% EQU 10 set tag=31
27.
if %monat% EQU 11 set tag=30
28.
if %monat% EQU 12 set tag=31
29.
 
30.
if %monat% NEQ 2 goto :done
31.
rem Tag im Februar, Schaltjahr pruefen
32.
set /a mod4=jahr % 4
33.
set /a mod100=jahr % 100
34.
set /a mod400=jahr % 400
35.
set tag=28
36.
if %mod4% NEQ 0 goto :done
37.
set tag=29
38.
if %mod100% NEQ 0 goto :done
39.
set tag=28
40.
if %mod400% NEQ 0 goto :done
41.
set tag=29
42.
:done
43.
 
44.
if %monat% LSS 10 set monat=0%monat%
45.
if %tag% LSS 10 set monat=0%tag%
46.
 
47.
echo Die Dateien des Vormonats werden archiviert
48.
echo Ermitteltes Datum: %tag%.%monat%.%jahr%, %stunde%:%minute%:%sekunde% Uhr
49.
 
50.
xcopy "D:\test\*.*" "D:\archiv\%jahr%-%monat%\*.*"/Q
51.
del "D:\test\*.*"/Q
52.
echo Fertig! Das Fenster wird gleich geschlossen
53.
sleep 120
54.
exit
Mitglied: erik87
03.01.2008 um 16:13 Uhr
hallo,

also hab jetzt mal eben überflogen und gesehen das du die variable %monat% 2.mal deklarierst! vllt. liegt da ja der fehler

Zitat aus deinem script:

:done

if %monat% LSS 10 set monat=0%monat%
if %tag% LSS 10 set monat=0%tag%

echo Die Dateien des Vormonats werden archiviert
Bitte warten ..
Mitglied: Biber
03.01.2008 um 16:25 Uhr
Moin RF1986,

es liegt daran, dass Dir die zweistelligen %tag%- und %monat%-Werte "08" und "09" als Oktalwerte interpretiert werden.
Bzw. (siehe Hilfe zu SET -- SET /a) alle "Werte", die mit einer Ziffer "0" beginnen, werden als "Oktal" angenommen.
Bei 01 bis 07 passt das - die entsprechen auch einem dezimalen 1 bis 7.
08 und 09 führen zu Fehlern.

Eine Möglichkeit der Umgehung wäre:
01.
...
02.
set /a tag=1%date:~-10,2% -100
03.
set /a monat=1%date:~-7,2% -100
04.
...
...also bei einem Datum "01.08.2007" -->
01.
...
02.
set /a tag=101 -100 ---> 1
03.
set /a monat=108 -100 --> 8
04.
...
-oder- (noch suboptimalere Variante)

Sicherstellen, dass NIE mit den "08"/"09"-Werten "gerechnet wird, sondern immer nur ein Textvergleich bei "IF...==" gemacht wird.
Für zweite Variante kein Beispiel, weil.... wer sollte so etwas tun?

Grüße
Biber
Bitte warten ..
Mitglied: Biber
22.01.2008 um 11:38 Uhr
Moin RF1986,

ist deine Frage noch offen oder erledigt?

Grüße
Biber
Bitte warten ..
Mitglied: RF1986
25.02.2008 um 20:01 Uhr
ist erledigt, vielen dank an Euch!
Bitte warten ..
Ähnliche Inhalte
Monitoring
Monitoring Fragen fur eine Schule
Frage von STYLUS3530Monitoring7 Kommentare

Hallo Ich bin ein anfangender Administrator in einer Schule. Jetzt mussten wir Wahlen für einen Monitor Server. Ich habe ...

Outlook & Mail
E-Mail Archivierung (GOBD)
Frage von palle1977Outlook & Mail8 Kommentare

Moin zusammen, wir beschäftigen uns aktuell mit dem Thema und testen gerade Barracuda. Ich wollte mal hören was ihr ...

Weiterbildung
Bat Dateien
Frage von fajo23Weiterbildung20 Kommentare

Ich habe folgendes Problem. Ich habe auf meiner Festplatte viele Dateinamen die wie folgt aussehen: 20180126 2355 - Dlf ...

Datenschutz
Email Archivierung - private Nutzung
Frage von NoobOneDatenschutz14 Kommentare

Hallo Zusammen, bei uns steht das Thema bezüglich der Archivierung der Emails an, da hier bislang leider noch nichts ...

Neue Wissensbeiträge
Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 18 StundenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 4 TageniOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 4 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 6 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Heiß diskutierte Inhalte
Windows Server
Einziger Domänencontroller ersetzen - Windows Server 2012R2 - Hostname
Frage von DeRo93Windows Server29 Kommentare

Guten Tag, Leider haben wir einen Domänencontroller dessen Komponentenspeicher defekt ist. Alle Maßnahmen sind da leider fehlgeschlagen. Nun wurde ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware20 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Windows Update
Fehler bei Updates über WSUS
Frage von Hendrik2586Windows Update19 Kommentare

Guten Tag liebe Kolleginen und Kollegen, lang lang ist meine letzte Anfrage her. Hier etwas das mich nun schon ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server18 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...