BATCH-Datei (Änderung von Daten in Textdatei) funktioniert ab 10 Datensätzen im File nicht mehr
Hallo Zusammen,
ich hatte vor Kurzem eine Frage im Forum bzgl. einer Korrektur bzw. Ergänzung von Daten in einer Textdatei.
User BASTLA hat mir daraufhin den nachfolgenden Code geschrieben, der auch wunderbar funktioniert.
echo off & setlocal
rename C:\.........\ab-U0348D.005 XX.txt
set "Ein=C:\.........\XX.txt"
set "Aus=C:\.........\PVP_%date:~0,2%%date:~3,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%_05230674.txt"
set "Von=P02 A"
set "Nach=P02 # A"
del "%Aus%" 2nul
for /f "usebackq delims=" %%i in ("%Ein%") do (
set "Satz=%%i"
setlocal enabledelayedexpansion
>>"%Aus%" echo !Satz:%Von%=%Nach%!
endlocal
)
del C:\.........\XX.txt
Bislang waren in den jeweiligen Textfiles lediglich bis zu 9 Datensätze. Seit gestern habe ich auch Textfiles mit
Ab 10 Datensätze in der Datei funktionieren die Umwandlungen (Umbenennung und Ergänzung) nicht mehr.
Kann mir jemand in diesem Zusammenhang weiterhelfen?
Danke und Gruß
ich hatte vor Kurzem eine Frage im Forum bzgl. einer Korrektur bzw. Ergänzung von Daten in einer Textdatei.
User BASTLA hat mir daraufhin den nachfolgenden Code geschrieben, der auch wunderbar funktioniert.
echo off & setlocal
rename C:\.........\ab-U0348D.005 XX.txt
set "Ein=C:\.........\XX.txt"
set "Aus=C:\.........\PVP_%date:~0,2%%date:~3,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%_05230674.txt"
set "Von=P02 A"
set "Nach=P02 # A"
del "%Aus%" 2nul
for /f "usebackq delims=" %%i in ("%Ein%") do (
set "Satz=%%i"
setlocal enabledelayedexpansion
>>"%Aus%" echo !Satz:%Von%=%Nach%!
endlocal
)
del C:\.........\XX.txt
Bislang waren in den jeweiligen Textfiles lediglich bis zu 9 Datensätze. Seit gestern habe ich auch Textfiles mit
9 Datensätzen.
Ab 10 Datensätze in der Datei funktionieren die Umwandlungen (Umbenennung und Ergänzung) nicht mehr.
Kann mir jemand in diesem Zusammenhang weiterhelfen?
Danke und Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 276958
Url: https://administrator.de/contentid/276958
Ausgedruckt am: 23.11.2024 um 10:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo Steven123!
Schwer nachvollziehbar ...
Kannst Du eine (gerne auch anonymisierte) Beispieldatei posten (als Code formatiert)?
Grüße
bastla
Schwer nachvollziehbar ...
Kannst Du eine (gerne auch anonymisierte) Beispieldatei posten (als Code formatiert)?
Grüße
bastla
Hallo Steven123!
Das "Phänomen" beruht auf der Tatsache, dass die Textdatei keine Zeilenschaltungen enthält und daher eine einzige Zeile mit 7.965 Bytes (= Zeichen) bei 9 Datensätzen und 8.850 Bytes bei 10 Datensätzen darstellt - die Variablenlänge ist in Batch aber auf 8.192 Zeichen begrenzt ...
Wenn VBS eine Option wäre, könntest Du das etwa so lösen:
Da die Ausgangsdatei ohnehin gelöscht wird, habe ich das Umbenennen eingespart ...
Grüße
bastla
Das "Phänomen" beruht auf der Tatsache, dass die Textdatei keine Zeilenschaltungen enthält und daher eine einzige Zeile mit 7.965 Bytes (= Zeichen) bei 9 Datensätzen und 8.850 Bytes bei 10 Datensätzen darstellt - die Variablenlänge ist in Batch aber auf 8.192 Zeichen begrenzt ...
Wenn VBS eine Option wäre, könntest Du das etwa so lösen:
Set fso = CreateObject("Scripting.FileSystemObject")
Ein = "ab-U0348D.005"
Aus = "PVP_" & Left(Replace(Date, ".", ""), 4) & Right(Date, 2) & Replace(Time, ":", "") & "_05230674.txt"
Von = "P02 A"
Nach = "P02 # A"
T = fso.OpenTextFile(Ein).ReadAll
fso.CreateTextFile(Aus).Write Replace(T, Von, Nach)
fso.DeleteFile(Ein)
Grüße
bastla