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

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Windows 10
gelöst Windows 10 - Datum und Zeitfehler bei Update (3)

Frage von swisstom zum Thema Windows 10 ...

Windows Userverwaltung
gelöst Datum einer Gruppenmitgliedschaft (1)

Frage von slansky zum Thema Windows Userverwaltung ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...