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-Key: 137926

Url: https://administrator.de/contentid/137926

Printed on: April 19, 2024 at 22:04 o'clock

Mitglied: 60730
60730 Mar 10, 2010 at 21:56:52 (UTC)
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ß
Member: tonymo
tonymo Mar 11, 2010 at 08:03:30 (UTC)
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%
Member: Biber
Biber Mar 11, 2010 at 08:57:55 (UTC)
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