Batch Begriffe in zufälliger reinvollge ausgeben. Problem keine Doppelten
Hallo,
und zwar ich habe ein kleines Problem mit einen Batch,
ich will ein Script schreiben was mir in zufälliger Reinfolge definierte Begriffe ausgibt, wobei er keine Doppelten ausgeben soll.
Hier meinen ersten Ansatz:
Leider funktioniert das Script nocht nicht ganz wie Ich es mir es vorstelle
Es gibt mir erst mal ein paar Begriffe aus aber wenn es einen doppelten Begriff findet bleibt es hängen und flakert und gibt nichts mehr aus
Ich weiß nicht woran es liegt
Bitte postet meinen Fehler, oder auch wenn ihr nur eine Ahnung habt woran es liegen könnte
Ich hoffe sowas ist überhaupt realisierbar!!!
Vieleicht kennt ihr eine bessere Lösung wie man so was lösen könnte, postet sie dann auch.
Über eine funktionierende Lösung wäre ich sehr dankbar.
mfg
Julian57
und zwar ich habe ein kleines Problem mit einen Batch,
ich will ein Script schreiben was mir in zufälliger Reinfolge definierte Begriffe ausgibt, wobei er keine Doppelten ausgeben soll.
Hier meinen ersten Ansatz:
@echo off
set y1=0
set y2=0
set y3=0
set y4=0
set y5=0
set y6=0
set y7=0
set y8=0
set Zähler=0
:1
cls
set /a zz=%random% %% 8 + 1
If %zz%==1 (set x=begriff1 & set /a y1=%y1%+1)
If %zz%==2 (set x=begriff2 & set /a y2=%y2%+1)
If %zz%==3 (set x=begriff3 & set /a y3=%y3%+1)
If %zz%==4 (set x=begriff4 & set /a y4=%y4%+1)
If %zz%==5 (set x=begriff5 & set /a y5=%y5%+1)
If %zz%==6 (set x=begriff6 & set /a y6=%y6%+1)
If %zz%==7 (set x=begriff7 & set /a y7=%y7%+1)
If %zz%==8 (set x=begriff8 & set /a y8=%y8%+1)
If %y1% GEQ 2 (goto 1)
If %y2% GEQ 2 (goto 1)
If %y3% GEQ 2 (goto 1)
If %y4% GEQ 2 (goto 1)
If %y5% GEQ 2 (goto 1)
If %y6% GEQ 2 (goto 1)
If %y7% GEQ 2 (goto 1)
If %y8% GEQ 2 (goto 1)
echo.
echo %x%
echo.
set /a Zähler=%Zähler%+1
if %Zähler%==8 (goto 2)
pause
goto 1
:2
cls
echo.
echo keine Begriffe mehr vorhanden
echo.
pause
exit
Leider funktioniert das Script nocht nicht ganz wie Ich es mir es vorstelle
Es gibt mir erst mal ein paar Begriffe aus aber wenn es einen doppelten Begriff findet bleibt es hängen und flakert und gibt nichts mehr aus
Ich weiß nicht woran es liegt
Bitte postet meinen Fehler, oder auch wenn ihr nur eine Ahnung habt woran es liegen könnte
Ich hoffe sowas ist überhaupt realisierbar!!!
Vieleicht kennt ihr eine bessere Lösung wie man so was lösen könnte, postet sie dann auch.
Über eine funktionierende Lösung wäre ich sehr dankbar.
mfg
Julian57
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 153372
Url: https://administrator.de/forum/batch-begriffe-in-zufaelliger-reinvollge-ausgeben-problem-keine-doppelten-153372.html
Ausgedruckt am: 27.12.2024 um 19:12 Uhr
3 Kommentare
Neuester Kommentar
Hallo Julian57,
Dein Fehler war folgender: Die Zeilen
hätten
lauten müssen.
Außerdem war der erste PAUSE-Befehl falsch platziert, sodass der letzte Begriff durch CLS wieder vom Bildschirm verschwand.
Hier mal eine etwas eingedampfte Version Deines Skripts. Bei Verständnisfragen bitte melden.
Gruß
Friemler
Dein Fehler war folgender: Die Zeilen
If %yX% GEQ 2 (goto 1)
If %yX% GEQ 2 (set /a "yX=yX-1" & goto 1)
Außerdem war der erste PAUSE-Befehl falsch platziert, sodass der letzte Begriff durch CLS wieder vom Bildschirm verschwand.
Hier mal eine etwas eingedampfte Version Deines Skripts. Bei Verständnisfragen bitte melden.
@echo off
setlocal
set "begriff1=Wort1"
set "begriff2=Wort2"
set "begriff3=Wort3"
set "begriff4=Wort4"
set "begriff5=Wort5"
set "begriff6=Wort6"
set "begriff7=Wort7"
set "begriff8=Wort8"
set /a "y1=0,y2=0,y3=0,y4=0,y5=0,y6=0,y7=0,y8=0"
set Zaehler=0
:1
cls
set /a zz=%random% %% 8 + 1
for /f "tokens=2 delims==" %%c in ('set y%zz%') do (
if %%c equ 1 goto 1
)
call set "x=%%begriff%zz%%%"
set /a "y%zz%+=1"
echo.
echo %x%
echo.
pause
set /a Zaehler+=1
if %Zaehler% lss 8 goto 1
:2
cls
echo.
echo keine Begriffe mehr vorhanden
echo.
pause
Gruß
Friemler