janek26

Zeilen zwischen zwei bestimmten Zeilen als Variable speichern.

Hallo Leute,
ich bin neu hier und hoffe auf eure Hilfe! face-wink

Ich möchte mit einer bat eine *.txt "beschneiden" face-wink

Zum beispiel:

Inhalt test.txt:

blablub
blablub
begin
laberbbuu
manne
end
bamm
bamm

nun soll meine bat alles wegschneiden außer das was zwischen begin und end steht.

also soll das ergebnis nach dem ausführen der bat so aussehen:

begin
laberbbuu
manne
end

Wie ihr sicher gemerkt habt sollen begin und end auch stehenbleiben!!! face-wink
Hoffe auf eure Hilfe!
MfG
ich face-smile

P.S.: MUSS es mit einer batch lösen face-wink am besten ohne sonstige tools face-wink
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 183923

Url: https://administrator.de/forum/zeilen-zwischen-zwei-bestimmten-zeilen-als-variable-speichern-183923.html

Ausgedruckt am: 15.07.2025 um 12:07 Uhr

bastla
bastla 22.04.2012 um 16:44:34 Uhr
Hallo janek26 und willkommen im Forum!

Schematisch etwa so:
@echo off & setlocal
set "DateiEin=D:\test.txt"  
set "DateiAus=D:\test2.txt"  
set "Von=begin"  
set "Bis=end"  

set "InBlock="  
(for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%DateiEin%"') do (  
    if "%%j"=="%Von%" set "InBlock=true"  
    if defined InBlock (
        set "Zeile=%%j"  
        setlocal enabledelayedexpansion
        echo(!Zeile!
        endlocal
    )
    if "%%j"=="%Bis%" set "InBlock="  
))>"%DateiAus%"  
Grüße
bastla
janek26
janek26 22.04.2012 um 18:18:26 Uhr
Ich habe schon viele Beiträge von dir gelesen und muss sagen du bist der beste!
bastla
bastla 22.04.2012 um 18:32:14 Uhr
Hallo janek26!

Letzteres sehe ich zwar nicht so, aber auf jeden Fall danke für die Blumen face-smile ...

Grüße
bastla
janek26
janek26 22.04.2012 um 18:49:31 Uhr
Die Batch funktioniert leider nicht face-confused die Ausgabedatei ist leer.
Hier einmal die original datei.txt zum download: Download bei RapidShare
Alles ab "begin 0666 datei.zip", inclusive "begin 0666 datei.zip" bis "end", inclusive "end" soll in eine neue datei geschrieben werden...
wäre nett wenn du dich damit nocheinmal beschäftigen würdest.
MfG
janek26
bastla
bastla 22.04.2012 um 19:00:01 Uhr
Hallo janek26!
Hier einmal die original datei.txt zum download: Download bei RapidShare
Diese "datei.txt" ist aber alles andere als eine Textdatei ...

Erklärst Du vielleicht etwas genauer, worum es dabei gehen soll?

Grüße
bastla
janek26
janek26 22.04.2012 um 19:26:26 Uhr
Die datei.txt ist eine jpg datei, wo die datenendung einfach zu .txt geändert wurde. Nun brauche ich von der textdatei nur das von begin 6660 datei.zip bis zu end. Das schreibe ich dann in eine andere datei face-wink näheres kann ich nicht verraten. Wenn dann nur per pm.
bastla
bastla 22.04.2012 um 19:28:52 Uhr
Hallo janek26!
näheres kann ich nicht verraten
Musst Du auch nicht - mit Batch wird das ohnehin nix ...

Grüße
bastla
janek26
janek26 22.04.2012 um 19:33:09 Uhr
Wie dann? Vbs? Könntest du mir bitte helfen...
bastla
bastla 22.04.2012 um 19:36:49 Uhr
Hallo janek26!
Wie dann? Vbs? Könntest du mir bitte helfen...
Auch VBS ist nicht für die Verarbeitung von Binärdateien (und das ist eine JPG-Datei) gedacht ...

Grüße
bastla
janek26
janek26 22.04.2012 um 19:38:43 Uhr
Fällt dir eine lösung ein mein problem zu lösen.
bastla
bastla 22.04.2012 um 19:42:14 Uhr
Hallo janek26!

Eigentlich nur, jemand anderen zu fragen ...

Grüße
bastla
janek26
janek26 22.04.2012 um 19:50:51 Uhr
Kennst du vllt jemanden? Wäre echt nett face-smile
bastla
bastla 22.04.2012 um 20:17:22 Uhr
Hallo janek26!

Sorry - da muss ich passen ...

Grüße
bastla
106009
106009 22.04.2012 um 20:40:30 Uhr
Hi,

zur Bearbeitung von Binär-Dateien brauchst du sowas. (nur als Beispiel)

Gruß
pieh-ejdsch
pieh-ejdsch 05.05.2012 um 14:15:31 Uhr
moin janek26,

mit Findstr sind immer andere ergebnisse zu erwarten als mit Find
Find hat eine andere Art der Nummerierung. Macht aber auch genau was es soll, es findet jede Zeile in jeder Datei.

@echo off
::	echo on
setlocal disabledelayedexpansion
if not exist "%~1" (echo Syntaxfehler. &echo Datei nicht gefunden! &echo Datei angeben. &goto :eof) >&2  
set "LineIn=begin"  
set "LineOut=end"  
for /f "delims=" %%i in ('find /n "%LineIn%" ^< %1 ') do set /a skip = %%i -1  
more +%skip% %1 |find /n /v "" >"%temp%\LN-tmp%~n1"  
for /f "delims=" %%i in ('find /n "]%LineOut%" ^< "%temp%\LN-tmp%~n1" ') do set /a Out = %%i  
(
for /f "usebackq delims= tokens=1*" %%i in ("%temp%\LN-tmp%~n1") do @if %%i leq %Out% echo(%%j  
)>"%~dpn1-neu%~x1"  

Gruß Phil