Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Datum ab Startdatum um einen Tag erhöhen

Frage Entwicklung Batch & Shell

Mitglied: trixy19

trixy19 (Level 1) - Jetzt verbinden

02.07.2008, aktualisiert 03.07.2008, 4764 Aufrufe, 6 Kommentare

Hallöchen,

ich habe ein kleines Problem was mich langsam verzweifeln lässt.
Ich möchte ab einem Startdatum in der Form PDATUM=20080201 Batch
ein Probramm laufen lassen und nach dem durchlauf den Tag um einen Tag erhöhen.
Bei Tag 31 soll sich der Monat erhöhen und bei Monat 12 auch das Jahr.

Das Programm was abläuft bearbeitet Dateien die z.B. so abgespeichert sind: C:\FOTO\20080201\

Hat jemand eine Idee, wie ich das automatisieren kann?

Wenn ich das mit Schleifen probiere, verschwinden die führenden Nullen, wenn ich die Variable hochzähle und da hört es bei mir irgendwie auf...

Danke und viele Grüße von Bea.
Mitglied: Biber
02.07.2008 um 18:22 Uhr
Moin trixy19,

willkommen im Forum.
Hier gibt es auch einige ältere und langsamere User... so wie mich zum Beispiel- denen Du bitte noch mal langsam erklären/bestätigen musst:

  • dieses Startdatum ist eine jeweils von Dir manuell festgelegte Variable ?
  • oder eine aus einem Datei/Ordner-Erstellungsdatum abzuleitende?
  • oder was genau passiert bei "einem Durchlauf"? Soll einfach nur nach dem Durchlauf eine Ausgabe erscheinen "Startdatum 20080201 - neues Datum 20080202"? Oder werden Dateien damit umbenannt oder in Ordner wegsortiert...?

Grüße
Biber
Bitte warten ..
Mitglied: bastla
02.07.2008 um 18:39 Uhr
Hallo trixy19 und willkommen auch von mir!

Unabhängig davon, wo und wie Du das neue Datum einzusetzen gedenkst, würde es sich etwa so ermitteln lassen:
01.
@echo off & setlocal 
02.
Set M=%temp%\Morgen.vbs 
03.
echo D=WScript.Arguments(0):N=DateAdd("d",1,DateSerial(Left(D,4),Mid(D,5,2),Right(D,2))):WScript.Echo Right(N,4)^&Mid(N,4,2)^&Left(N,2)>%M% 
04.
:: 
05.
:: Was halt so zu tun ist ... 
06.
:: 
07.
set "PDATUM=20080101" 
08.
:: 
09.
:: Neues Datum ermitteln 
10.
:: 
11.
for /f %%i in ('cscript //nologo %M% %PDATUM%') do set "PDATUM=%%i" 
12.
echo Datum jetzt: %PDATUM% 
13.
::
Durch Verwendung der Zeile 11 erhältst Du jeweils das Datum des nächsten Tages. Wie Du es dann verwenden kannst, wäre noch aufgrund Deiner Antworten zu Bibers Fragen zu klären.

Grüße
bastla
Bitte warten ..
Mitglied: trixy19
02.07.2008 um 18:41 Uhr
Hallo Biber,

also das Startdatum ist von mir festgelegt bzw. von den Dateiordnern die gespeichert wurden.
Das fängt irgendwann 2006 an mit den Ordnern und es ist fast täglich ein Ordner erstellt.

Mein Wegsortier Programm funktioniert schon gut, das würde ich für aktuelle Daten mit:

FOR /F "tokens=1,2,3,4 delims=/. " %%a in ('date/T') do set FOLDERDATE=%%c%%b%%a

machen wollen.
Allerdings müsste ich mit der Lösung für jeden alten Ordner das Systemdatum umstellen und das Programm von Hand starten.
Das würde ich gerne vermeiden.

Ich dachte mir ich kann diesen Ordnernamen aus drei Variablen JJ,MM,TT zusammenbauen. So war zumindest mein Plan.

Bei einem Durchlauf werden die Dateien erst an einen anderen Ort kopiert und dann umbenannt (also wegsortiert)
Bitte warten ..
Mitglied: trixy19
02.07.2008 um 19:16 Uhr
Hallo bastla,

ich vemute das ist die Lösung. Ich werde das gleich mal in mein Programm einbauen.

Vielen Dank erstmal
Bitte warten ..
Mitglied: trixy19
03.07.2008 um 15:41 Uhr
Hallo bastla,

also soweit ich das jetzt sehen kann funktioniert Deine Lösung spitze. Danke erstmal
Ich bekomme allerdings eine Fehlermeldung: maximale rekursionstiefe für setlocal erreicht.
Mit enabledelayedexpansion läuft das programm jetzt zwar durch, aber ich konnte nicht´s finden was
mir diese Meldung erklärt.

Hast Du eine Idee oder kennst Du den Hintergrund der Meldung?

lg bea
Bitte warten ..
Mitglied: bastla
03.07.2008 um 17:50 Uhr
Hallo trixy19!

Es ist zwar spannender, zu raten, ob Du zB in statt vor einer Schleife ein "setlocal" (ohne zugehöriges "endlocal") verwendest, aber einfacher wäre es, wenn Du den Batch posten könntest (vorzugsweise zwischen < code>-Tags).

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Datenbanken
Access 2010 - Filter für Datum funkioniert nicht VBA (4)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Microsoft Office
Excel Diagramm - Datum wird nicht aktualisiert (9)

Frage von KMP1988 zum Thema Microsoft Office ...

Batch & Shell
gelöst Powershell Monthcalendar Datum Format ändern (4)

Frage von xpxy15 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (15)

Frage von Angela44 zum Thema DSL, VDSL ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

Exchange Server
gelöst DHCP Sever MS Server 2012 Problem (10)

Frage von Florian86 zum Thema Exchange Server ...