Forums before death by AOL, social media and spammers... "We can't have nice things"
|    alt.msdos.batch.nt    |    Fun with Windows NT batch files    |    68,980 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 67,301 of 68,980    |
|    yelw0rc@gmx.net to All    |
|    =?UTF-8?Q?Re=3A_Benutzereingabe_2_mal_t=    |
|    21 Sep 18 03:02:11    |
      Am Mittwoch, 19. September 2018 13:03:01 UTC+2 schrieb Herbert Kleebauer:       > On 18.09.2018 23:46, Christian wrote:       > > Hallo,       > >        > > irgendwie verstehe ich es nicht.       > > Warum muss bei folgendem Skript die Benutzereingabe 2 x erfolgen       > > bevor er weiter geht?       > >        > > @echo off       > > if 1==0 (       > > echo.True       > > ) else (       > > echo.False       > > :loop       > > set /p eingabe=Bitte Eingabe y/n:       > > if "%eingabe%"=="" goto loop       > > echo.%eingabe%       > > if "%eingabe%"=="y" echo.True       > > if "%eingabe%"=="n" echo.False       > > )       > > timeout 5       >        > Die %-Variablen in der Klammer werden ausgewertet wenn die       > Befehle zwischen ( und ) eingelesen werden und nicht erst,       > wenn sie ausgeführt werden. Was immer daher der Wert von       > %eingabe% war bevor der Klammerausdruck gelesen wurde, wird       > für den if Vergleich benutzt. Und "goto" zwischen Klammern       > macht irgendwie immer Probleme. Am Besten ohne () arbeiten       > und nach alter Methode einfach ungewünschte Bereiche mit       > goto überspringen.       >        > In deinem Fall kannst du das Programm durch eine zusätzliches       > (eigentlich sinnloses) "goto :loop" unmittelbar vor den :loop       > zum Laufen bringen. Keine Ahnung wieso, will es auch gar nicht       > wissen. Ich benutze () nur für eine Folge einfacher Befehle       > ohne z.B. if und goto.       >        >        > @echo off       > if 1==0 (       > echo.True       > ) else (       > echo.False       > goto :loop       > :loop       > set /p eingabe=Bitte Eingabe y/n:       > if "%eingabe%"=="" goto loop       > echo.%eingabe%       > if "%eingabe%"=="y" echo.True       > if "%eingabe%"=="n" echo.False       > )       > timeout 5              Interessant. Danke für den Tipp.              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca