tonymo
Goto Top

Batch Stringverarbeitung

Hallo,
ich bin relativ neu auf dem Gebiet der der Batch-Programmierung.

Ich suche etwas, womit ich ein Datum in eine andere Schreibweise bringen kann.
Ausgangssituation ist eine TXT-Datei in der lediglich ein Datum steht z.B. 24.02.2010
Als nächster Schritt sollen alle Punkte entfernt werden. -> 24022010
Zum Schluss soll noch die Reihenfolge der Daten geändert werden. von TTMMJJJJ auf JJJJMMTT
Am Ende soll es also so aussehen, dass in meiner TXT-Datei nur noch 20100224 steht.

Für Tipps wie ich die ganze Sache verwirklichen soll wäre ich sehr dankbar.

Content-ID: 137926

Url: https://administrator.de/forum/batch-stringverarbeitung-137926.html

Ausgedruckt am: 10.04.2025 um 17:04 Uhr

60730
60730 10.03.2010 um 22:56:52 Uhr
Goto Top
moin,

zu dem Thema hat "uns" Biber ein wunderbares Tut (Anleitung) hier hinterlegt..

Die gehört zur Pflichtlektüre nicht nur für werdende Bätchler.

Gruß
tonymo
tonymo 11.03.2010 um 09:03:30 Uhr
Goto Top
Danke für deine Antwort!
Nach ein wenig lesen im Tut haben ich mich für eine simple, wenn auch nicht dynamische Lösung entschieden.
set /p "datum="<"MeineDatei.txt"  
set TT=%datum:~0,2%
set MM=%datum:~3,2%
set JJJJ=%datum:~6,4%
set datum=%JJJJ%%MM%%TT%
Biber
Biber 11.03.2010 um 09:57:55 Uhr
Goto Top
Moin tonymo,

grundsätzliches Jein zu deiner (erstmal funktionierenden) Lösung.
Die Zerlegung von Datums/Zeitstrings mit Substring-Funktionen halte ich für die unzuverlässigste Variante.
Wie im Tut lang und breit ausgeschmückt, kann der geneigte DAU die Datumsformatierung wissentlich und unwissentlich über Länder-/Sprach-/usereigene Einstellungen ändern und jeder gatesverdammte Windowsrechner kann ein anderes Datumsformat anzeigen.

Ein Kompromiss (etwas sicherer, aber nicht so verschnörkelt wie im Tut) wäre:
[Demo am CMD-Prompt; führendes ">" ist mein Prompt:
> set "mydatum=24.02.2010"  
> for /f "delims=. tokens=1-3" %i in ("%mydatum%") do set "MyTT=%i" & set "myMM=%j" &set "myJJ=%k"  

>set my
mydatum=24.02.2010
myJJ=2010
myMM=02
MyTT=24

Du kannst deine Variante natürlich auch so lassen wie sie ist, aber dann solltest du um die Anfälligkeit der Substring-Klamotte wissen.

Grüße
Biber