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

Text von zeile mit wort, bis ziele mit wort

Frage Entwicklung Batch & Shell

Mitglied: Saintwolf

Saintwolf (Level 1) - Jetzt verbinden

12.02.2014, aktualisiert 19.02.2014, 900 Aufrufe, 5 Kommentare, 2 Danke

suche eine Batch die eine txt auswertet

inhalt:

text a
text b
text c
Fehler
fehler in KB4568792
text d
Fehler
fehler in KB5464121
.....

jetzt möchte ich gerne das der Text von Wort Fehler bis zum 2ten Fehler in eine neue txt Datei geschrieben wird.
Es soll nur der erste Fehler in eine neue Datei der danach wird nicht benötigt.
dabei können wie dazwischen liegenden zeilen variabel sein mal mehr und mal weniger.


hoffe es kann mir jemand helfen.
Mitglied: bastla
12.02.2014, aktualisiert um 10:40 Uhr
Hallo Saintwolf!

Der folgende Ansatz schreibt alle Zeilen zwischen den ersten beiden "Fehler"-Zeilen (genauer: zwischen den ersten beiden Zeilen, die mit "Fehler" beginnen) in die Ausgabedatei:
01.
@echo off & setlocal 
02.
set "Ein=D:\Fehlerprotokoll.txt" 
03.
set "Aus=D:\FehlerEinzel.txt" 
04.
set "Suchwort=Fehler" 
05.
 
06.
set "Von=" 
07.
set "Bis=" 
08.
for /f "delims=:" %%i in ('findstr /nbc:"%Suchwort%" "%Ein%"') do ( 
09.
    if not defined Von ( 
10.
        set /a Von=%%i 
11.
    ) else ( 
12.
        if defined Von if not defined Bis set /a Bis=%%i 
13.
14.
15.
if not defined Von (echo "%Suchwort%" nicht gefunden! & pause & goto :eof) 
16.
if not defined Bis ( 
17.
    >"%Aus%" more +%Von% "%Ein%" 
18.
    goto :eof 
19.
20.
del "%Aus%" 2>nul 
21.
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%Ein%"') do ( 
22.
    if %%i gtr %Von% if %%i lss %Bis% ( 
23.
        set "Zeile=%%j" 
24.
        setlocal enabledelayedexpansion 
25.
        >>"%Aus%" echo(!Zeile! 
26.
        endlocal 
27.
28.
)
Grüße
bastla
Bitte warten ..
Mitglied: Saintwolf
18.02.2014, aktualisiert um 13:34 Uhr
set "Suchwort=Fehler"
set "Suchwort2=Neustart"

set "Von="
set "Bis="
for /f "delims= " %%i in ('findstr /nb "%Suchwort2%" "%Ein%"') do (
if not defined Von (
set /a Von=%%i
echo %Von%
) else (
for /f "delims=:" %%k in ('findstr /nb "%Suchwort%" "%Ein%"') do (
if defined Von if not defined Bis set /a Bis=%%k
echo %Bis%
)

wollte das ganze nun nach 2 versiedenen wörtern aufbauen aber geht nicht so recht

die log hat den inhalt:

.
.
Es wurde ein Neustart durchgeführt ! Alte ..\log\2014-02-18\64\win7_sp1_hp_x64_uk.prc\integrate_upd.log wurde gelöscht
.
.
Tool zur Imageverwaltung fr die Bereitstellung
Version: 6.3.9600.16384

Abbildversion: 6.1.7600.16385

Processing 1 of 1 - E:\W7\64\upd\Windows6.0-KB956250-x64.msu: Unable to find the Unattend.xml file in the expanded .msu package.
Error: 0x80070032

Fehler: 50



wollte das di Batch wenn was Wort Fehler nicht 2mal vorhanden ist er den text von Neustart bis Fehler nimmt.

das vom Wort Fehler bis Fehler geht.
Bitte warten ..
Mitglied: bastla
18.02.2014 um 15:35 Uhr
Hallo Saintwolf!

Wenn ich das richtig verstanden habe, sollte es genügen, die (Leer-)Zeile 5 durch
01.
for /f %%i in ('find /i "%Suchwort%"<"%Ein%"') do set /a Anzahl=%%i 
02.
if %Anzahl% leq 1 set "Suchwort=Neustart"
zu ersetzen - es sei denn, "Neustart'" würde mehr als einmal vorkommen ...

Grüße
bastla
Bitte warten ..
Mitglied: Saintwolf
18.02.2014 um 15:49 Uhr
Zitat von bastla:

Hallo Saintwolf!

Wenn ich das richtig verstanden habe, sollte es genügen, die (Leer-)Zeile 5 durch
01.
for /f %%i in ('find /i "%Suchwort%"<"%Ein%"') do set /a Anzahl=%%i 
02.
> if %Anzahl% leq 1 set "Suchwort=Neustart" 
03.
> 
zu ersetzen - es sei denn, "Neustart'" würde mehr als einmal vorkommen ...

Grüße
bastla

geht nicht so recht

er soll wenn Fehler nicht 2mal vorkommt dann vom Zeile "Neustart" bis Zeile "Fehler"

müsste ich da nicht ein schwenk auf 2 Suchwörter machen ? komm da nicht weiter.

als vorlage hab ich den ersten Script genommen.
Bitte warten ..
Mitglied: bastla
LÖSUNG 18.02.2014, aktualisiert 19.02.2014
Hallo Saintwolf!

Sorry - hatte nicht genau genug gelesen ...

Versuch es damit:
01.
@echo off & setlocal 
02.
set "Ein=D:\Fehlerprotokoll.txt" 
03.
set "Aus=D:\FehlerEinzel.txt" 
04.
set "SuchwortVon=Fehler" 
05.
set "SuchwortBis=Fehler" 
06.
 
07.
for /f %%i in ('find /i "%SuchwortVon%"<"%Ein%"') do set /a Anzahl=%%i 
08.
if %Anzahl% leq 1 set "SuchwortVon=Neustart" 
09.
 
10.
set "Von=" 
11.
set "Bis=" 
12.
for /f "delims=:" %%i in ('findstr /nbc:"%SuchwortVon%" "%Ein%"') do if not defined Von set /a Von=%%i 
13.
if not defined Von (echo "%SuchwortVon%" nicht gefunden! & pause & goto :eof) 
14.
for /f "delims=:" %%i in ('findstr /nbc:"%SuchwortBis%" "%Ein%"') do if not defined Bis if %Von% neq %%i set /a Bis=%%i 
15.
if not defined Bis ( 
16.
    >"%Aus%" more +%Von% "%Ein%" 
17.
    goto :eof 
18.
19.
del "%Aus%" 2>nul 
20.
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%Ein%"') do ( 
21.
    if %%i gtr %Von% if %%i lss %Bis% ( 
22.
        set "Zeile=%%j" 
23.
        setlocal enabledelayedexpansion 
24.
        >>"%Aus%" echo(!Zeile! 
25.
        endlocal 
26.
27.
)
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batsch doppelte Zeile in in Text finden und eine löschen (10)

Frage von GNLen1 zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel VBA In Userform Maske Text nach Eingabe löschen (1)

Frage von kluthi69 zum Thema Microsoft Office ...

Datenbanken
gelöst MySQL "order by" erst bestimmtes Wort, dann alphabetisch (9)

Frage von AS-N00 zum Thema Datenbanken ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (19)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...

C und C++
Fehlendes verständiss von C und C++ (8)

Frage von zelamedia zum Thema C und C ...