janek26
Goto Top

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

Content-Key: 183923

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

Printed on: April 24, 2024 at 11:04 o'clock

Member: bastla
bastla Apr 22, 2012 at 14:44:34 (UTC)
Goto Top
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
Member: janek26
janek26 Apr 22, 2012 at 16:18:26 (UTC)
Goto Top
Ich habe schon viele Beiträge von dir gelesen und muss sagen du bist der beste!
Member: bastla
bastla Apr 22, 2012 at 16:32:14 (UTC)
Goto Top
Hallo janek26!

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

Grüße
bastla
Member: janek26
janek26 Apr 22, 2012 at 16:49:31 (UTC)
Goto Top
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
Member: bastla
bastla Apr 22, 2012 at 17:00:01 (UTC)
Goto Top
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
Member: janek26
janek26 Apr 22, 2012 at 17:26:26 (UTC)
Goto Top
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.
Member: bastla
bastla Apr 22, 2012 at 17:28:52 (UTC)
Goto Top
Hallo janek26!
näheres kann ich nicht verraten
Musst Du auch nicht - mit Batch wird das ohnehin nix ...

Grüße
bastla
Member: janek26
janek26 Apr 22, 2012 at 17:33:09 (UTC)
Goto Top
Wie dann? Vbs? Könntest du mir bitte helfen...
Member: bastla
bastla Apr 22, 2012 at 17:36:49 (UTC)
Goto Top
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
Member: janek26
janek26 Apr 22, 2012 at 17:38:43 (UTC)
Goto Top
Fällt dir eine lösung ein mein problem zu lösen.
Member: bastla
bastla Apr 22, 2012 at 17:42:14 (UTC)
Goto Top
Hallo janek26!

Eigentlich nur, jemand anderen zu fragen ...

Grüße
bastla
Member: janek26
janek26 Apr 22, 2012 at 17:50:51 (UTC)
Goto Top
Kennst du vllt jemanden? Wäre echt nett face-smile
Member: bastla
bastla Apr 22, 2012 at 18:17:22 (UTC)
Goto Top
Hallo janek26!

Sorry - da muss ich passen ...

Grüße
bastla
Mitglied: 106009
106009 Apr 22, 2012 at 18:40:30 (UTC)
Goto Top
Hi,

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

Gruß
Member: pieh-ejdsch
pieh-ejdsch May 05, 2012 at 12:15:31 (UTC)
Goto Top
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