TXT Datei verändern und neu speichern per Batch (Teil3)
Hallo Leute,
folgender Code löst unten stehendes Problem:
Ettliche Transaktionsdateien welche täglich in ein Verzeichnis kopiert werden
(00000001.TXT bis 0000000N.TXT) haben folgenden Inhalt.
Dateiinhalt ist jeweils eine Zeile
0815|2612| 1 | 4 | 21 | 18|23.10.2007 13:40:33
nach der Konvertierung
Der Delimiter "|" wurde gelöscht und durch variable Feldbreiten ersetzt.
Das Ergebnis mit obigen Code:
0815-2612-1---------4----21---18---23.10.20
Die Bindestriche sind nur zum verdeutlichen da. In der neuen Datei sind sie nicht.
Neues Problem:
1. Problem
Der 3. Wert stellt eine Stückzahl dar. Es soll immer .00 angehängt werden.
2. Problem
Der 7. Wert stellt das Datum dar. Es soll immer im Format YYYYMMDD sein.
nach der Konvertierung sollte das Ergebnis so aussehen:
0815-2612-1.00------4----21---18---20071023
Die Bindestriche sind nur zum verdeutlichen da. In der neuen Datei sind sie nicht.
Kann mir hier jemand helfen?
Danke und Gruß
Roland
folgender Code löst unten stehendes Problem:
@echo off & setlocal
set "PadTemp=%temp%\Pad.vbs"
set "Quelle=C:\Live\00000*.txt"
set "Ziel=C:\Live"
set "Neu=Neu-"
echo Breite=Array(5,5,10,5,5,5,8)>"%PadTemp%"
echo Felder=Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0),1).ReadAll,"|")>>"%PadTemp%"
echo For i=0 To UBound(Felder):Zeile=Zeile^&Left(Trim(Felder(i))^&Space(Breite(i)),Breite(i)):Next:WScript.Echo Zeile>>"%PadTemp%"
for %%i in ("%Quelle%") do cscript //nologo "%PadTemp%" "%%i" >"%Ziel%\%Neu%%%~nxi%"
del "%PadTemp%"
(00000001.TXT bis 0000000N.TXT) haben folgenden Inhalt.
Dateiinhalt ist jeweils eine Zeile
0815|2612| 1 | 4 | 21 | 18|23.10.2007 13:40:33
nach der Konvertierung
Der Delimiter "|" wurde gelöscht und durch variable Feldbreiten ersetzt.
Das Ergebnis mit obigen Code:
0815-2612-1---------4----21---18---23.10.20
Die Bindestriche sind nur zum verdeutlichen da. In der neuen Datei sind sie nicht.
Neues Problem:
1. Problem
Der 3. Wert stellt eine Stückzahl dar. Es soll immer .00 angehängt werden.
2. Problem
Der 7. Wert stellt das Datum dar. Es soll immer im Format YYYYMMDD sein.
nach der Konvertierung sollte das Ergebnis so aussehen:
0815-2612-1.00------4----21---18---20071023
Die Bindestriche sind nur zum verdeutlichen da. In der neuen Datei sind sie nicht.
Kann mir hier jemand helfen?
Danke und Gruß
Roland
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 71701
Url: https://administrator.de/forum/txt-datei-veraendern-und-neu-speichern-per-batch-teil3-71701.html
Ausgedruckt am: 23.04.2025 um 19:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo reinhr!
Bitte beachten: Da die Zählung der Felder bei 0 beginnt, muss für die Felder 3 und 7 in den beiden neuen Zeilen jeweils "Felder(2)" und "Felder(6)" verwendet werden.
Grüße
bastla
@echo off & setlocal
set "PadTemp=%temp%\Pad.vbs"
set "Quelle=C:\Live\00000*.txt"
set "Ziel=C:\Live"
set "Neu=Neu-"
echo Breite=Array(5,5,10,5,5,5,8)>"%PadTemp%"
echo Felder=Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0),1).ReadAll,"|")>>"%PadTemp%"
echo Felder(2)=Trim(Felder(2))^&".00">>"%PadTemp%"
echo D=CDate(Felder(6)):Felder(6)=Year(D)^&Right("0"^&Month(D),2)^&Right("0"^&Day(D),2)>>"%PadTemp%"
echo For i=0 To UBound(Felder):Zeile=Zeile^&Left(Trim(Felder(i))^&Space(Breite(i)),Breite(i)):Next:WScript.Echo Zeile>>"%PadTemp%"
for %%i in ("%Quelle%") do cscript //nologo "%PadTemp%" "%%i" >"%Ziel%\%Neu%%%~nxi%"
del "%PadTemp%"
Grüße
bastla