faysax
Goto Top

txt File mit Batch ab bestimmer Zeilen Anzahl in Zwei .txt Files splitten

Hallo miteinander,

bisher bin ich über Google leider nicht fündig geworden aber vielleicht hilft mir hier jemand.

Ich möchte ein Text File in zwei kleinere Trennen ab einer bestimmten Zeilen Anzahl !

Bsp.

Ich habe eine txt mit 20000 Zeilen.
Die Zeilen Anzahl lass ich über ein Batch Zählen.
Nun möchte ich aber ds mir die Batch ab z.B. Zeile 10000 die ersten Zeilen in eine tmp.txt Speichert und die restlichen Zeilen in temp2.txt speichert
@echo off
set /a "Counter=0"  

for /f "delims=" %%a in (D:\meine.txt) do  set /a "Counter+=1"  
echo  %Counter%

Content-ID: 297230

Url: https://administrator.de/forum/txt-file-mit-batch-ab-bestimmer-zeilen-anzahl-in-zwei-txt-files-splitten-297230.html

Ausgedruckt am: 17.04.2025 um 07:04 Uhr

agowa338
agowa338 26.02.2016, aktualisiert am 09.03.2016 um 16:23:05 Uhr
Goto Top
Einfach in der For schleife eine If Anweisung platzieren und die Sache ist erledigt.
@echo off & setlocal EnableDelayedExpansion
set /a "Counter=0"  

for /f "delims=" %%a in (D:\meine.txt) do (  
  if !Counter! LEQ 10000 (
    echo %%a > DATEI_1.txt
  ) else (
    echo %%a > DATEI_2.txt
  )
  set /a "Counter+=1"  
)
echo %Counter%
Faysax
Faysax 07.03.2016 aktualisiert um 08:23:01 Uhr
Goto Top
Hallo agowa338,

Danke für deine Schnelle Hilfe.
Habe den Quellcode noch ein wenig angepasst. Jedoch Zählt es mir am Ende der for Schleife den Counter nicht hoch und belässt ihn auf 0. Somit schreibt er den ganzen Text in die Datei_1.txt. Habe zur Überprüfung die echo Counter Anweisung in die for Schleife mit eingebunden un dabei gibt er mir immer 0 aus.

@echo off
set /a "Counter=0"  

for /f "delims=" %%a in (D:\meine.txt) do (  
  if %Counter% LEQ 10000 (
    echo %%a >> DATEI_1.txt
  ) else (
    echo %%a >> DATEI_2.txt
  )
  set /a "Counter+=1"  
)
echo %Counter%
Biber
Biber 07.03.2016 um 09:44:02 Uhr
Goto Top
Moin Faysax,

die "verzögerte Variablenauflösung", neudeutsch DelayedExpansion muss aktiviert sein, da sonst keine Variable innerhalb einer Anweisung (=der FOR /F -Anweisung) neu aufgelöst wird.

@echo off & setlocal EnableDelayedExpansion
set /a "Counter=0"  

for /f "delims=" %%a in (D:\meine.txt) do (  
  if !Counter! LEQ 10000 (
    echo %%a >> DATEI_1.txt
  ) else (
    echo %%a >> DATEI_2.txt
  )
  set /a "Counter+=1"  
)
echo %Counter%

Grüße
Biber
Faysax
Faysax 08.03.2016 um 15:39:10 Uhr
Goto Top
Hallo Biber
Vielen Dank Funktioniert Top face-smile