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, 902 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
Excel (2016): Enthaltenen Text suchen (2)

Frage von ralfkausk zum Thema Microsoft Office ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(10)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...