Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Teil einer Textdatei in eine andere Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: Ruebezahl

Ruebezahl (Level 1) - Jetzt verbinden

06.11.2006, aktualisiert 08.11.2006, 4724 Aufrufe, 6 Kommentare

Liebe Leute,


wer kennt eine elegante Möglichkeit, in einer Textdatei_A ab einem bestimmten Suchbegriff_1 nach einem Suchbegriff_2 zu suchen? Wenn dieser Suchbegriff_2 vorkommt, soll alles ab dem Suchbegriff_1 bis zum Ende dieser Datei in eine neue Textdatei_B geschrieben werden.

Diese Batch-Datei soll keine externen Programme verwenden und unter
Windows 2000 / 2003 lauffähig sein.


Vielen Dank für Eure Mühe

Herzliche Grüße
Ruebezahl
Mitglied: AxelHahn
06.11.2006 um 12:19 Uhr
Hallo Ruebezahl


Ich würde in der Textdatei die Zeilennummer von Begriff1 als auch 2 suchen.
Wenn Zeilennummer2 > Zeilennummer1 dann Textdatei ab Zeile X anzeigen und in eine neue Textdatei umleiten.

Ich habe gerade nicht soviel Zeit zum Ausprobieren. Daher nur Codeschnipselchen, die du zum Zusammenbau bräuchtest:

Zeilennummer anzeigen: findstr /n "Suchbegriff" "[Dateiname]"
Textfile ab bestimmter Zeile anzeigen: more +"Zeilenanzahl" "[Dateiname]"


Viele Grüsse
-= Axel =-
Bitte warten ..
Mitglied: Escobar
06.11.2006 um 12:34 Uhr
hier mal ein script, welches eine section aus einer ini rausholt. du musst dieses script nur sinnvoll zusammenkuerzen, dann haste es.

01.
@echo off 
02.
 
03.
REM Param 1: Pfad zur IniDatei 
04.
REM Param 2: Pfad zur ErgDatei 
05.
REM Param 3: Name der gesuchten Section 
06.
 
07.
set backupini=%1 
08.
set ErgFile=%2 
09.
set SectionName=%3 
10.
set TempFile=iniExtTemp.mbfr 
11.
set inGesHeader=0 
12.
set inGesSection=0 
13.
set inHeader=0 
14.
set Zeile=0 
15.
 
16.
del %ErgFile% >NUL >NUL 
17.
del %TempFile% >NUL >NUL  
18.
 
19.
for /F "tokens=1 delims=" %%f in (%backupini%) DO (set Zeile=%%f & call:[BearbeiteZeile]) 
20.
 
21.
:[BearbeiteZeile] 
22.
echo %Zeile%>%TempFile% 
23.
findstr "[" %TempFile% >NUL 
24.
if %errorlevel%==0 set inHeader=1 & set inGesSection=0 & set inGesHeader=0 
25.
findstr "/C:%SectionName%" %TempFile% >NUL 
26.
if %errorlevel%==0 set inGesHeader=1 
27.
findstr "REM " %TempFile% >NUL 
28.
if %errorlevel%==0 set inGesSection=0 
29.
if %inGesSection%==1 echo %Zeile% >> %ErgFile% 
30.
if %inGesHeader%==1 set inGesSection=1 
31.
 
32.
:EOF 
33.
del %TempFile% >NUL
Esco
Bitte warten ..
Mitglied: Ruebezahl
06.11.2006 um 16:25 Uhr
Liebe Leute,

ausgehend von Axels Idee habe ich mal Folgendes zusammengebaut
und mit ein paar Erläuterungen versehen:

01.
@ECHO off 
02.
SETLOCAL 
03.
 
04.
REM Ersten Suchbegriff finden (dieser Begriff taucht immer irgendwo auf) 
05.
FOR /f  "delims=:" %%i IN ('FINDSTR /n /c:Suchbegriff_1 Textdatei_A') DO SET /a zahl=%%i 
06.
 
07.
REM Zeilenzahl um 1 zurücksetzen, damit Suchbegriff_1 in der Ausgabedatei erscheint 
08.
SET /a zahl=%zahl%-1 
09.
REM Textdatei_A ab Suchbegriff_1 in Textdatei_B schreiben 
10.
MORE +%zahl% Textdatei_A > Textdatei_B 
11.
 
12.
REM Zweiten Suchbegriff finden 
13.
FOR /f %%i IN ('FINDSTR /c:Suchbegriff_2 Textdatei_B') DO GOTO weiter 
14.
 
15.
REM wenn zweiter Suchbegriff nicht gefunden, Textdatei_B löschen 
16.
DEL Textdatei_B /f > nul 
17.
GOTO eof 
18.
 
19.
:weiter 
20.
REM weitere Verarbeitung 
21.
 
22.
:eof
So funktioniert es... Wenn jemand andere Vorschläge hat, so sind diese herzlich willkommen.
Vielen Dank an Axel und Escobar für ihre Ideen.

Herzliche Grüße
Ruebezahl
Bitte warten ..
Mitglied: Biber
06.11.2006 um 18:34 Uhr
Moin Bätchler,

ich setze einfach diesen Thread auf gelöst... da können höchstens noch Spitzfindigkeiten ergänzt werden.

Die einzige Spitzfindigkeit, die ich noch anzumerken hätte:
Wenn die Textdaten nun nicht gerade größer sind als die Hälfte des virtuellen Arbeitsspeichers, dann kann auf das Zwischenspeichern in einer Datei_B verzichtet werden.

01.
@ECHO off 
02.
SETLOCAL 
03.
 
04.
REM Ersten Suchbegriff finden (dieser Begriff taucht immer irgendwo auf) 
05.
FOR /f  "delims=:" %%i IN ('FINDSTR /n /c:Suchbegriff_1 Textdatei_A') DO SET /a "zahl=%%i - 1" 
06.
REM Zeilenzahl um 1 zurücksetzen, damit Suchbegriff_1 in der Ausgabedatei erscheint 
07.
REM Zweiten Suchbegriff finden ... Textdatei_A ab Suchbegriff_1 an MORE und FINDSTR weiterreichen.. 
08.
FOR /f %%i IN ('MORE +%zahl% Textdatei_A^|FINDSTR /c:Suchbegriff_2') DO GOTO weiter 
09.
goto :eof 
10.
 
11.
:weiter 
12.
REM weitere Verarbeitung 
13.
 
14.
:eof ----------------- die Marke ":eof" braucht nicht unbedingt angegeben werden, die ist hart verdrahtet in der CMD.exe
Aber das sind, wie geschrieben, nur kosmetische Anmerkungen.
Vielen Dank allen

Grüße
Biber
P.S. @Ruebezahl: Habe Deinen Code auf <code> umformatiert.
Bitte warten ..
Mitglied: Ruebezahl
08.11.2006 um 11:08 Uhr
Hallo Biber,


ich habe Deine Änderungen getestet - es funktioniert prima.

Vielen Dank für Deine Mühe!


Herzlich Grüße
Ruebezahl
Bitte warten ..
Mitglied: Biber
08.11.2006 um 11:13 Uhr
Moin Rübezahl,

danke für die Rückmeldung.

Ich setze diese Gemeinschaftslösung mal auf geschlossen.

Herzliche Grüße zurück
Biber
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
gelöst 2 große TXT Dateien vergleichen und Unterschiede in andere Datei schreiben (6)

Frage von sid.pdm zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch-Skript: Messdaten in Textdatei finden und in eine neue Datei schreiben (5)

Frage von habmalnefrage zum Thema Batch & Shell ...

Windows Systemdateien
gelöst Registry-Schlüssel per Batch auslesen und in Datei schreiben (9)

Frage von Philzip zum Thema Windows Systemdateien ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...