pinkfluffyunicorn
Goto Top

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)
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:

Content-ID: 303162

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

Ausgedruckt am: 26.11.2024 um 16:11 Uhr

114757
Lösung 114757 28.04.2016 aktualisiert um 20:46:22 Uhr
Goto Top
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.
@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
)
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