Text Datei bis bestimmten String kopieren und auslagern
Hallo zusammen,
wie der Titel schon sagt suche ich nach einem .bat Skript dass vom Anfang der .txt Datei bis zu einem gewissen String sucht und diesen ganzen Abschnitt kopiert und in eine neue .txt Datei auslagert.
Weiß da jemand vielleicht was?
Grüße,
Badox
wie der Titel schon sagt suche ich nach einem .bat Skript dass vom Anfang der .txt Datei bis zu einem gewissen String sucht und diesen ganzen Abschnitt kopiert und in eine neue .txt Datei auslagert.
Weiß da jemand vielleicht was?
Grüße,
Badox
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 267522
Url: https://administrator.de/contentid/267522
Ausgedruckt am: 24.11.2024 um 03:11 Uhr
4 Kommentare
Neuester Kommentar
So ein ähnliches Thema hatten wir vor 3 Tagen
Benutze eine Schleife und schreibe die Werte in eine andere Datei (.txt).
Das sollte dir dabei helfen:
Variable aus anderer Bat-Datei holen
Musst du natürlich noch ein bisschen umschreiben, aber im Prinzip ganz einfach.
Gruß joehuaba
Benutze eine Schleife und schreibe die Werte in eine andere Datei (.txt).
Das sollte dir dabei helfen:
Variable aus anderer Bat-Datei holen
Musst du natürlich noch ein bisschen umschreiben, aber im Prinzip ganz einfach.
Gruß joehuaba
Hallo SKBadox,
Falls es VBS sein darf:
Gruss
Tsuki
Falls es VBS sein darf:
PfadDatei1 = "TestInput.txt"
Suchtext = "b ="
PfadDatei2 = "TestOutput.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
MeineDaten = Split(FSO.OpenTextFile(PfadDatei1, 1).ReadAll, Suchtext)
If Ubound (MeineDaten) > 0 then
FSO.CreateTextFile(PfadDatei2,True).Write(MeineDaten(0))
End If
Gruss
Tsuki
moin SKBadox,
als Pure Batch:
Gruß Phil
als Pure Batch:
<Quelldatei Batch "Zeichernfolge" >Augabedatei
@echo off
:noOption
if "%~1" neq "" goto :nohelp
echo Gibt eine Ausgabe bis zur angebenen Zeichenfolge&echo(
echo %~n0 ist mit Eingabeumleitung zu nutzen
echo %~n0 "Zeichenfolge" ^<Quelldatei [^>Zieldatei]&echo(
echo Zeichenfolge die zu suchende Zeichenfolge wird mit FIND bestimmt
echo ohne AusgabeUmleitung Ausgabe im CMD Fenster
exit /b
:nohelp
setlocal disabledelayedexpansion
set "intemp=%temp%%time::=%"
set "string=%~1"
set "stringlength=0"
:Laenge string bestimmen
for /f eol^=^
^ delims^= %%i in (' cmd /u /von /c "echo(!string!"^|find /v "" ') do set /a Stringlength += 1
:Eingabe temporär speichern
>"%intemp%" find /n /v ""
:suchen der Zeichenfolge und Zeile bestimmen und speichen
set "NRout="
for /f "tokens=*delims=" %%a in (' find "%string%"^<"%intemp%" ') do if not defined NRout (set "LineStr=%%a"
for /f "delims=" %%b in ("%%a") do set "NRout=%%b"
)
if not defined NRout >&2 echo Zeichenfolge nicht gefunden.& set /a xcode=1 &goto :end
if %NRout% gtr 1 call :Line
call :LineStr
:end
del "%intemp%"
exit /b %xcode%
:LineStr Suche nur jeden ersten Buchstaben des Strings in der Treffer-Zeile dann Ausgabe bis dahin
for /f eol^=^
^ delims^= %%a in ('cmd /u /von /c "echo(!String!"^|findstr .') do (
for /f "delims=" %%i in (' cmd /u /von /c "echo(!LineStr!"^|find /n "%%a" ') do (
setlocal enabledelayedexpansion
for /f %%n in ('set /a %%i-1') do if !LineStr:^~%%n^,%stringlength%! equ !string! (
set "Lineout=!LineStr:~0,%%n!!string!"
echo(!Lineout:*]=!
exit /b
)
) )
exit /b
:Line vorige Zeilen ausgeben
for /f "usebackq tokens=* delims=" %%i in ("%intemp%") do (
for /f "tokens=1*delims=" %%n in ("%%i") do if %%n EQU %NRout% exit /b
set "Line=%%i"
setlocal enabledelayedexpansion
echo(!Line:*]=!
endlocal
)
exit /b
Gruß Phil