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

Wert aus Textzeile prüfen und ganze Zeile in neue Textdatei verschieben

Frage Entwicklung Batch & Shell

Mitglied: marsl84

marsl84 (Level 1) - Jetzt verbinden

23.12.2010 um 10:46 Uhr, 3974 Aufrufe, 5 Kommentare

Hallo alle zusammen,

ich habe mal wieder ein Problem, bei welchen mir keine Lösung einfällt und ich auch keine finden kann

Ich möchte aus einer Textdatei jede Zeile einzeln auslesen, den 3. Wert überprüfen und wenn dieser 3. Wert der Bedienung entspricht, die ganze Zeile in Textdatei A schreiben, wenn nicht, die ganze Zeile in Textdatei B schreiben.

Mein Lösungsansatz bis jetzt:

01.
 
02.
for /f "tokens=3 delims=!" %%m in (Textdatei.txt) do ( 
03.
if %%m == bedinung ( 
04.
echo %%m >> textdatei_a.txt 
05.
) else ( 
06.
echo %%m >> textdatei_a.txt 
07.
08.
 
Aber leider schreibt er mir hier natürlich nur das ausgewertete Token in die neuen Textdateien. Ich könnte jetzt alle tokens auswerten (zB: tokens=1-10) und dann alle Variablen in die Textdatei schreiben (echo %%m %%n ... >> textdatei_a.txt) aber es sind über 50 Werte in der auszuwertenden Textdatei. Das geht ja nicht wenn ich mich nicht irre oder?!

Weiß jemand Rat?

Vielen Dank schon im voraus.

Grüße,
Marsl
Mitglied: bastla
23.12.2010 um 11:19 Uhr
Hallo marsl84!

Wenn der zu prüfende Wert "speziell" genug wäre (und daher nicht auch in einem anderen "token" vorkommen kann) sollte sich das mit
01.
findstr "!bedinung!" Textdatei.txt>>textdatei_a.txt 
02.
findstr /v "!bedinung!" Textdatei.txt>>textdatei_b.txt
lösen lassen - ansonsten könntest Du geschachtelte "for"-Schleifen versuchen:
01.
for /f "delims=" %%a in (Textdatei.txt) do ( 
02.
    for /f "tokens=3 delims=!" %%m in (%%a) do ( 
03.
    if %%m==bedinung ( 
04.
        echo %%a >> textdatei_a.txt 
05.
    ) else ( 
06.
        echo %%a >> textdatei_b.txt 
07.
08.
)
Grüße
bastla

P.S.: Ich wollte mit der Schreibweise "Bedingung" nicht noch eine Variante ins Spiel bringen - "Bedienung" und "bedinung" sollten für den Anfang genügen ...
Bitte warten ..
Mitglied: Biber
23.12.2010 um 11:24 Uhr
Moin marsi84,

du könntest eine äußere FOR/F-Anweisung zusätzlich vorschalten und dort die ganze Zeile (also FOR /F "delims="...) transportieren.

Sinngemäß und ungetestet:
01.
FOR /F "delims=" %%i in Textdatei.txt DO ( 
02.
    for /f "tokens=3 delims=!" %%m in ("%%i") do ( 
03.
            if "%%m" == "bedinung" ( 
04.
                 echo %%i>> textdatei_a.txt 
05.
           ) else ( 
06.
                echo %%i>> textdatei_b.txt 
07.
08.
)
Allerdings... ich würde erstmal prüfen, ob du es nicht einfacher mit "FindStr /i "bedingung" textdatei.txt" bzw. "FindStr /i /v "bedingung" textdatei.txt" gebacken bekommst.

Grüße
Biber
Bitte warten ..
Mitglied: marsl84
23.12.2010 um 12:26 Uhr
Hallo,

erstmal vielen Dank für eure Antworten

ich hab jetzt die Möglichkeit mit der zusätzlichen FOR Schleife ausprobiert. An sich scheint Sie zu funktionieren, problem ist nur, dass die Zeile in der 2. Schleife ohne Tokens ankommt?! Die ! sind verschwunden?!

Jemand eine Idee?

Danke und Grüße,
Marsl
Bitte warten ..
Mitglied: bastla
23.12.2010 um 12:47 Uhr
Hallo marsl84!

Wenn bei Dir auch in der ersten Schleife "delims=" steht, ist das eigentlich nur mit einer Verwendung von "setlocal enabledelayedexpansion" zu erklären ...

Grüße
bastla
Bitte warten ..
Mitglied: marsl84
23.12.2010 um 13:06 Uhr
Ja, das kann sein, weil ich mit "setlocal enabledelayedexpansion" arbeite. Aber egal, ich habe es jetzt mit findstr gelöst. ;)

Funktioniert super.

Vielen Dank euch und ein frohes Fest!!!!

Grüße,
Marsl
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Mittels Batch jede Zeile einer Textdatei prüfen (4)

Frage von Peter32 zum Thema Batch & Shell ...

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

Frage von FuxxLi zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien anhand des Namens in neue Ordner verschieben (17)

Frage von Cookiemonster zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

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

Frage von Motte990 zum Thema Microsoft Office ...