Eingabe auf bestimmte wörter Prüfen
Hallo und schönen Sonntag
War lange nicht mehr hier, und will wider versuchen eine Kleinigkeit zu Schreiben
Versuche mich gerade daran die Batch Datei dazu zu bewegen die Eingabe die mit set /p Test= in die Variable Test gespeichert wird, auf bestimmte Wörter zu überprüfen.
Also z.B
Das Huhn legte gestern das Ei
Gestern legte das Huhn das Ei
Ein Ei legte gestern das Huhn
oder
123 Test TEst irgendwas Huhn test test Ei nicht möglich gestern
usw was es halt Alles für Möglichkeiten gibt dies auszudrücken.
Will jetzt einfach nur auswerten lassen, ob der Satz:
Huhn
Ei
gestern
enthält, der Rest ist egal
Habe folgende Zeilen Geschrieben
Die zweite Zeile brauche ich, weil auf mehre mögliche Sätze geprüft werden soll.
Falls die Bedingung fehl schlägt, also nicht alle definierten Wörter oder keins enthalten ist, soll die Zeile für die Eingabe erneut angezeigt werden.
Habe das bisher einfach so gelöst:
Da die Batch hier scheinbar dan einfach mir dem Code weitermacht, scheint es so zu funktionieren.
Ich hoffe ihr wisst was ich meine
Muss den Code jetzt so ändern, das er nicht nur das eine Wort sucht, sondern alle.
Schonmal danke für eine Antwort
Mfg
Power-Poler
War lange nicht mehr hier, und will wider versuchen eine Kleinigkeit zu Schreiben
Versuche mich gerade daran die Batch Datei dazu zu bewegen die Eingabe die mit set /p Test= in die Variable Test gespeichert wird, auf bestimmte Wörter zu überprüfen.
Also z.B
Das Huhn legte gestern das Ei
Gestern legte das Huhn das Ei
Ein Ei legte gestern das Huhn
oder
123 Test TEst irgendwas Huhn test test Ei nicht möglich gestern
usw was es halt Alles für Möglichkeiten gibt dies auszudrücken.
Will jetzt einfach nur auswerten lassen, ob der Satz:
Huhn
Ei
gestern
enthält, der Rest ist egal
Habe folgende Zeilen Geschrieben
echo %Test%|Findstr /C:"Ei">nul && goto Ei
echo %Test%|Findstr /C:"Blume">nul && goto Blume
Die zweite Zeile brauche ich, weil auf mehre mögliche Sätze geprüft werden soll.
Falls die Bedingung fehl schlägt, also nicht alle definierten Wörter oder keins enthalten ist, soll die Zeile für die Eingabe erneut angezeigt werden.
Habe das bisher einfach so gelöst:
:Start
echo Text eingeben
set /p Test=
echo %Test%|Findstr /C:"Ei">nul && goto Ei
echo %Test%|Findstr /C:"Blume">nul && goto Blume
:Fehler
cls
echo falsche Eingabe erneut Eingeben
goto Start
Da die Batch hier scheinbar dan einfach mir dem Code weitermacht, scheint es so zu funktionieren.
Ich hoffe ihr wisst was ich meine
Muss den Code jetzt so ändern, das er nicht nur das eine Wort sucht, sondern alle.
Schonmal danke für eine Antwort
Mfg
Power-Poler
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 184914
Url: https://administrator.de/forum/eingabe-auf-bestimmte-woerter-pruefen-184914.html
Ausgedruckt am: 21.02.2025 um 13:02 Uhr
3 Kommentare
Neuester Kommentar
moin Power-Poler,
mit einer ODER Suche kannst Du nach dem "Ei" oder dem "Huhn" suchen:
Eine UND Suche könnte So ausehen:
oder ausser der Reihe
Gruß Phil
mit einer ODER Suche kannst Du nach dem "Ei" oder dem "Huhn" suchen:
(
echo Das Huhn legte ein Ei
echo der Hund der Eimer
echo das Huhn die Eier
) | findstr /ri "\<huhn\> \<Ei\>"
Eine UND Suche könnte So ausehen:
(
echo Das Huhn legte ein Ei
echo der Hund der Eimer
echo das Huhn die Eier
) |findstr /ric:" Huhn *.* legt[e]* *.* Eie*r*"
oder ausser der Reihe
(
echo Das Huhn legte ein Ei
echo der Hund der Eimer
echo das Huhn die Eier
echo das Huhn legte 5 eier
) |findstr /rc:"\<Huhn\>" |findstr /ric:"\<eie*r* " |findstr /ric:"\<legte\>"
Gruß Phil
Bei "Ausser der Reihe" ist die Reihenfolge der zu findenden Worte egal, es müssen aber alle vorhanden sein.
Test im CMD-Fenster
Gruß Phil
Test im CMD-Fenster
>(echo 15 Eier legte das Huhn &echo legt MohrHuhn Setzei &echo ein ei legt das Huhn )
15 Eier legte das Huhn
legt MohrHuhn Setzei
ein ei legt das Huhn
>(echo 15 Eier legte das Huhn &echo legt MohrHuhn Setzei &echo ein ei legt das Huhn ) |findstr /rc:"\<Huhn\>" |findstr /ric:"\<eie*r* " |findstr /rc:"\<legte*\>"
15 Eier legte das Huhn
ein ei legt das Huhn
>(echo 15 Eier legte das Huhn &echo legt MohrHuhn Setzei &echo ein ei legt das Huhn)|findstr /rc:\^<Huhn\^> |findstr /ric:\^<eie*r* |findstr /ric:\^<legte*\^>
15 Eier legte das Huhn
ein ei legt das Huhn
kommt immer "Falsche Eingabe".
Schalte Echo on um den Fehler zu finden.Gruß Phil