Variable auf Inhalt prüfen
Hi, ich sitze jetzt schon den halben tag daran eine if schleife zu erstellen die mir sagt ob Variable 1 Einen Buchstaben enthält oder nicht.
ich hab mir das ca so vorgestellt( da ich 5 Buchstaben eintippen will und die alle in eine einzelne Variable sollen)
Wäre nett wenn ihr mir helfen könnt, wenn ihr sonstige fehler findet könnt ihr mir sie auch gerne beheben und für codeverbesserungen bin ich immer offe, aber bitte kommentiert die zeilen dass ich weiss was passiert, bin ein kleiner neewbie in batch c:
ich hab mir das ca so vorgestellt( da ich 5 Buchstaben eintippen will und die alle in eine einzelne Variable sollen)
set /p letter1="Letter: "
set /p letter2="Letter: "
set /p letter3="Letter: "
set /p letter4="Letter: "
set /p letter5="Letter: "
:Loop
set /a letter=letter1
if %letter1% == "" (
goto Fill
)
else
(
timeout /t 1
)
set /a letter=letter1+1
if letter == 5 (
goto weiter
)
else
(
goto Loop
)
:Fill
set /a letter=="."
echo Buchstabe 1 = %Letter1%
echo Buchstabe 2 = %Letter2%
echo Buchstabe 3 = %Letter3%
echo Buchstabe 4 = %Letter4%
echo Buchstabe 5 = %Letter5%
Wäre nett wenn ihr mir helfen könnt, wenn ihr sonstige fehler findet könnt ihr mir sie auch gerne beheben und für codeverbesserungen bin ich immer offe, aber bitte kommentiert die zeilen dass ich weiss was passiert, bin ein kleiner neewbie in batch c:
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 303162
Url: https://administrator.de/contentid/303162
Ausgedruckt am: 26.11.2024 um 16:11 Uhr
1 Kommentar
Moin,
prüfen ob ein String in einem anderen enthalten ist kannst du viel einfacher mit findstr ermitteln, das gibt einen Return-Code zurück wenn etwas gefunden wurde oder eben nicht. Das kannst du ausnutzen um zu entscheiden was gemacht werden soll:
Leider ist deine Beschreibung nicht so eindeutig, so dass ich hier raten musste.
Zur Info das >nul 2>&1 leitet eventuelle Meldungen von findstr wenn ein Suchbegriff nicht gefunden wurde ins Nirvana, damit wir rein das Ergebnis abfragen können ohne das irgendwelche unnützen Ausgaben erscheinen.
Technisch gesehen leitet der Befehl erst STDERR auf STDOUT um 2>&1 , um dann das ganze per >nul ins Nirvana zu schicken.
Das ganze ist eine Abkürzung für ein IF-Konstrukt in dem man erst den Errorlevel eines Befehls abfragt und dann entscheidet was gemacht wird.
Gruß jodel32
prüfen ob ein String in einem anderen enthalten ist kannst du viel einfacher mit findstr ermitteln, das gibt einen Return-Code zurück wenn etwas gefunden wurde oder eben nicht. Das kannst du ausnutzen um zu entscheiden was gemacht werden soll:
Leider ist deine Beschreibung nicht so eindeutig, so dass ich hier raten musste.
@echo off & setlocal
:START
:: Suchbegriff abfragen
set /p suchbegriff=Suchbegriff eingeben:
:: Variable die Text enthält
set "variable1=Ich bin ein Mustertext in dem ich etwas suche"
:: Suche den Suchbegriff in Variable1 und entscheide je nach Erfolg oder Mißerfolg was gemacht werden soll
echo "%variable1%" | findstr /ic:"%suchbegriff%" >nul 2>&1 && (
echo ERFOLG! Suchbegriff wurde in Variable1 gefunden.
) || (
echo Suchbegriff wurde leider nicht gefunden, geben sie nun einen neuen Suchbegriff ein.
goto START
)
Technisch gesehen leitet der Befehl erst STDERR auf STDOUT um 2>&1 , um dann das ganze per >nul ins Nirvana zu schicken.
Gruß jodel32