speedesel

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 81250

Url: https://administrator.de/forum/findstr-zahlen-0-7-81250.html

Ausgedruckt am: 30.04.2025 um 22:04 Uhr

Biber
Biber 20.02.2008 um 20:50:18 Uhr
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
bastla
bastla 20.02.2008 um 21:35:59 Uhr
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
Speedesel
Speedesel 21.02.2008 um 13:17:41 Uhr
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?
Biber
Biber 25.02.2008 um 18:28:51 Uhr
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
Biber
Biber 03.03.2008 um 06:50:14 Uhr
Goto Top
Moin Speedesel,

kann ein Haken dran?

Grüße
Biber