speedesel
Goto Top

findstr Zahlen 0-7

Hallo zusammen,

ich habe folgendes Problem. Ich möchte eine txt-Datei auswerten und wenn der Wert zwischen 0-7 liegt eine neue txt-Datei mit ok anlegen. Die Txt-Dateien die auszuwerten sind, haben einen Wert von
0-59! Mehr nicht! Komme einfach nicht mit findstr weiter! Kann mir bitte jemand helfen.

Danke und Grüße

Björn

Content-Key: 81250

Url: https://administrator.de/contentid/81250

Printed on: April 20, 2024 at 00:04 o'clock

Member: Biber
Biber Feb 20, 2008 at 19:50:18 (UTC)
Goto Top
Moin Speedesel,

wäre es nicht eventuell einfacher, diese Werte mit einer FOR/F-Anweisung auszulesen?
Beispiel (für den Test am CMD-Prompt):
for /f %i in (datei.txt) do @if %i LEQ 7 (@echo %i ist kleiner gleich 7)

Biber
Member: bastla
bastla Feb 20, 2008 at 20:35:59 (UTC)
Goto Top
Hallo Speedesel!

So ganz klar ist mir zwar nicht, was Du mit "txt-Datei auswerten" meinst, aber wenn es unbedingt "findstr" sein soll, wäre der Suchstring "[0-7]", also etwa:
findstr [0-7] Text.txt>nul && echo ok>Neue.txt
Damit würde "ok" geschrieben werden, wenn in irgendeiner Zeile der Datei "Text.txt" eine Ziffer zwischen 0 und 7 vorkommt - oder was genau möchtest Du untersuchen?

Grüße
bastla
Member: Speedesel
Speedesel Feb 21, 2008 at 12:17:41 (UTC)
Goto Top
Der erste Versuch von Biber hat schon den Nagel auf dem Kopf getroffen! Jetzt muss ich das ganze nur als Batchdatei hinbekommen! Aus der Dos-Box läuft es perfekt! Kann mir dort auch jemadn auf die Sprünge helfen?
Member: Biber
Biber Feb 25, 2008 at 17:28:51 (UTC)
Goto Top
Moin speedesel,

sorry, habe Deine Antwort erst jetzt wahrgenommen...

Um vom einer am CMD-Prompt funktionierenden FOR-Anweisung zu einer funktionierenden FOR-Anweisung im Batch zu kommen, müssen eigentlich nur die Prozentzeichen der Laufvariablen (%i, %j, ....) verdoppelt werden zu %%i, %%j etc.

also wird aus CMD-Prompt-FOR-Anweisung
for /f %i in (datei.txt) do @if %i LEQ 7 (@echo %i ist kleiner gleich 7)
...die Batch-Version...
@for /f %%i in (datei.txt) do @if %%i LEQ 7 (@echo %%i ist kleiner gleich 7)
... oder, etwas realistischer in einem etwas längeren Batch

:: ---- derGanze.bat
@echo off & setlocal
:: ..... ggf. Variablen setzen, Parameter prüfen...

:: die ganzen "@" brauchen wir nicht mehr.... Echo ist off  
for /f %%i in (datei.txt) do if %%i LEQ 7 goto :InhaltKleiner7
:HierIstInhalt8oderMehr
:: .... ggf. Anweisung für diesen Fall

goto :eof
~~~~~~~~
:InhaltKleiner7
:: ....  Anweisungen für diesen Fall

goto :eof

Grüße
Biber
Member: Biber
Biber Mar 03, 2008 at 05:50:14 (UTC)
Goto Top
Moin Speedesel,

kann ein Haken dran?

Grüße
Biber