Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch Begriffe in zufälliger reinvollge ausgeben. Problem keine Doppelten

Frage Entwicklung

Mitglied: Julian57

Julian57 (Level 1) - Jetzt verbinden

19.10.2010, aktualisiert 15:11 Uhr, 2467 Aufrufe, 3 Kommentare

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:

01.
@echo off 
02.
set y1=0 
03.
set y2=0 
04.
set y3=0 
05.
set y4=0 
06.
set y5=0 
07.
set y6=0 
08.
set y7=0 
09.
set y8=0 
10.
set Zähler=0 
11.
:1 
12.
cls 
13.
set /a zz=%random% %% 8 + 1 
14.
If %zz%==1 (set x=begriff1 & set /a y1=%y1%+1) 
15.
If %zz%==2 (set x=begriff2 & set /a y2=%y2%+1) 
16.
If %zz%==3 (set x=begriff3 & set /a y3=%y3%+1) 
17.
If %zz%==4 (set x=begriff4 & set /a y4=%y4%+1) 
18.
If %zz%==5 (set x=begriff5 & set /a y5=%y5%+1) 
19.
If %zz%==6 (set x=begriff6 & set /a y6=%y6%+1) 
20.
If %zz%==7 (set x=begriff7 & set /a y7=%y7%+1) 
21.
If %zz%==8 (set x=begriff8 & set /a y8=%y8%+1) 
22.
If %y1% GEQ 2 (goto 1) 
23.
If %y2% GEQ 2 (goto 1)  
24.
If %y3% GEQ 2 (goto 1) 
25.
If %y4% GEQ 2 (goto 1)  
26.
If %y5% GEQ 2 (goto 1)  
27.
If %y6% GEQ 2 (goto 1)  
28.
If %y7% GEQ 2 (goto 1) 
29.
If %y8% GEQ 2 (goto 1) 
30.
echo. 
31.
echo %x% 
32.
echo. 
33.
set /a Zähler=%Zähler%+1 
34.
if %Zähler%==8 (goto 2) 
35.
pause 
36.
goto 1 
37.
:2 
38.
cls 
39.
echo. 
40.
echo keine Begriffe mehr vorhanden 
41.
echo. 
42.
pause 
43.
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
Mitglied: Friemler
19.10.2010 um 15:03 Uhr
Hallo Julian57,

Dein Fehler war folgender: Die Zeilen
If %yX% GEQ 2 (goto 1)
hätten
If %yX% GEQ 2 (set /a "yX=yX-1" & goto 1)
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.
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
 
06.
set "begriff1=Wort1" 
07.
set "begriff2=Wort2" 
08.
set "begriff3=Wort3" 
09.
set "begriff4=Wort4" 
10.
set "begriff5=Wort5" 
11.
set "begriff6=Wort6" 
12.
set "begriff7=Wort7" 
13.
set "begriff8=Wort8" 
14.
 
15.
set /a "y1=0,y2=0,y3=0,y4=0,y5=0,y6=0,y7=0,y8=0" 
16.
set Zaehler=0 
17.
 
18.
 
19.
:1 
20.
cls 
21.
 
22.
set /a zz=%random% %% 8 + 1 
23.
 
24.
for /f "tokens=2 delims==" %%c in ('set y%zz%') do ( 
25.
  if %%c equ 1 goto 1 
26.
27.
 
28.
call set "x=%%begriff%zz%%%" 
29.
set /a "y%zz%+=1" 
30.
 
31.
echo. 
32.
echo %x% 
33.
echo. 
34.
pause 
35.
 
36.
set /a Zaehler+=1 
37.
if %Zaehler% lss 8 goto 1 
38.
 
39.
 
40.
:2 
41.
cls 
42.
echo. 
43.
echo keine Begriffe mehr vorhanden 
44.
echo. 
45.
 
46.
pause
Gruß
Friemler
Bitte warten ..
Mitglied: Julian57
19.10.2010 um 15:16 Uhr
Hallo,

Super funktioniert,
danke dir

mfg

Julian57
Bitte warten ..
Mitglied: H41mSh1C0R
27.12.2010 um 10:00 Uhr
Wenn alles funktioniert, dann bitte noch den grünen Haken setzen damit man das in der Übersicht sieht.

VG
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Batch & Shell
gelöst Grosses Variablen Problem ( Batch) (30)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...