Zeilen zwischen zwei bestimmten Zeilen als Variable speichern.
Hallo Leute,
ich bin neu hier und hoffe auf eure Hilfe!
Ich möchte mit einer bat eine *.txt "beschneiden"
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!!!
Hoffe auf eure Hilfe!
MfG
ich
P.S.: MUSS es mit einer batch lösen am besten ohne sonstige tools
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!!!
Hoffe auf eure Hilfe!
MfG
ich
P.S.: MUSS es mit einer batch lösen am besten ohne sonstige tools
Please also mark the comments that contributed to the solution of the article
Content-Key: 183923
Url: https://administrator.de/contentid/183923
Printed on: April 24, 2024 at 11:04 o'clock
15 Comments
Latest comment
Hallo janek26 und willkommen im Forum!
Schematisch etwa so:
Grüße
bastla
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%"
bastla
Hallo janek26!
Erklärst Du vielleicht etwas genauer, worum es dabei gehen soll?
Grüße
bastla
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
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.
Gruß Phil
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