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, 886 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Text in neue 1. Zeile in Textdatei einfügen (4)

Frage von FuxxLi zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel: Text in Zellbereich prüfen mit Vergleichstext ggf. mit Exact-Funktion (5)

Frage von Michi1 zum Thema Microsoft Office ...

Microsoft Office
gelöst Wie kann man die Standard-Schriftart bei einfügen von Text in Word 2013 festlegen? (3)

Frage von Rene1976 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...