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, 3224 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
Grafikkarten & Monitore
Was habe ich fuer eine Grafikkarte?
Frage von airlineGrafikkarten & Monitore24 Kommentare

Hallo und guten Tag, ich stehe vor dem Problem, das ich eine neue Grafikkarte erworben habe und nicht weiss, ...

E-Mail
Mail-Archivierungs-System gesucht
Frage von BitEaterE-Mail7 Kommentare

Hallo, wir sind ein technisches Büro mit aktuell ca. 30 Mitarbeitern. Wir sind auf der Suche nach einem passenden ...

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

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

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
Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 4 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 7 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 1 TagWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 2 TagenSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Heiß diskutierte Inhalte
C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++33 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Batch & Shell
Powershell: Im AD nach Comutern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell21 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
Frage von Bommi1961Batch & Shell20 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...