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

Frage Entwicklung Batch & Shell

GELÖST

Problem bei BAT fuer monatl. Archivierung

Mitglied: RF1986

RF1986 (Level 1) - Jetzt verbinden

03.01.2008, aktualisiert 25.02.2008, 3215 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
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...