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,303 of 68,980    |
|    Herbert Kleebauer to Christian    |
|    =?UTF-8?Q?Re:_Benutzereingabe_2_mal_t=c3    |
|    19 Sep 18 13:03:01    |
      From: klee@unibwm.de              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              --- 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