Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst Als was list Batch die 10? (Und gegebenenfalls alle zaheln mit nullen)

Mitglied: Power-Poler

Power-Poler (Level 1) - Jetzt verbinden

23.01.2011 um 11:13 Uhr, 4794 Aufrufe, 11 Kommentare

Guten Morgen
Habe da ein kleines Problem mit Zahlen auswerten.

Habe mir einen kleinen Script geschrieben, der eine Zufallszahl zwischen 1 und 10 generiert (soll später Variable sein, zwischen welchen werten)
Zahlen von 1-9 funktionieren.
Nur die 10 Tanzt aus der reihe.
Sagen wir, als gesuchte zahl ist 1.
Gebe ich 2 ein kommt die Ausgabe die gesuchte zahl ist kleiner.
Was ja stimmt.
Gebe ich 10 ein, gesuchte Zahl ist größer
Umgekehrt genauso.
gesuchte zahl ist 10
gebe ich 2-9 ein gesuchte Zahl ist kleiner.
Bei 1 gesuchte zahl ist größer

Als was wird die 10 interpretiert?

Hier der Code:

01.
@echo off & setlocal
02.
set Richtig=0
03.
set Falsch=0
04.
:Test
05.
SET MIN=1
06.
SET MAX=10
07.
SET /a Zufall=MIN+(MAX-MIN+1)*%random%/32768 
08.
echo Ratte eine Zahl zwischen 1 und 10
09.
echo %Zufall%
10.
:Neu
11.
set Eingabe=
12.
set /p "Eingabe= " 
13.
if %Eingabe% geq %MIN% if %Eingabe% leq %MAX% goto :LOL
14.

15.
echo Falsche Eingabe
16.
echo normal
17.
sleep.exe 1
18.
set /a Falsch=%Falsch%+1
19.
::cls
20.
goto :Neu
21.

22.
:LOL
23.
if "%Eingabe%" lss "%Zufall%" goto :Groesser
24.
if "%Eingabe%" gtr "%Zufall%" goto :Kleiner
25.
if "%Eingabe%" equ "%Zufall%" goto :Richtig
26.
::if "%Eingabe%" equ "Ergebnis" goto :Ergebnis
27.

28.
:Richtig
29.
echo Richtig die Zahl ist %Zufall%
30.
echo normal
31.
sleep.exe 1
32.
set /a Richtig=%Richtig%+1
33.
::cls
34.
goto :Test
35.

36.
:Ergebnis
37.
echo Richtig: %Richtig%
38.
echo Falsch: %Falsch%
39.
sleep.exe 3
40.
::cls
41.
goto :Test
42.

43.
:Kleiner
44.
echo Die gesuchte Zahl ist kleiner
45.
goto :Neu
46.

47.
:Groesser
48.
echo Die gesuchte Zahl ist groesser
49.
goto :Neu
Schonmal vielen Dank im Voraus
Mfg
Power-Poler
Mitglied: 76109
23.01.2011 um 12:29 Uhr
Hallo Power-Poler!

Versuchs mal mit:
01.
Set /a Min=1
02.
Set /a Max=10
Option /a steht für numerischen Ausdruck

Gruß Dieter
Bitte warten ..
Mitglied: Power-Poler
23.01.2011 um 13:06 Uhr
Hat leider nichts gebracht.
Danke f´ür deine Antwort
Bitte warten ..
Mitglied: bastla
23.01.2011 um 13:47 Uhr
Hallo Power-Poler!

Du solltest Dich nicht beschweren, vom CMD-Interpreter ernstgenommen zu werden : Wenn Du einen alphanumerischen Vergleich (Zeilen 23 bis 25) verlangst, wird der natürlich auch durchgeführt - daher einfach die Anführungszeichen entfernen ...
Noch zwei Anmerkungen zu den Berechnungen:
Ich bevorzuge beim Zählen die abgekürzte Schreibweise (funktioniert nämlich auch innerhalb einer Schleife ohne "delayedExpansion")
set /a Falsch+=1
und eine Zufallszahl im Bereich 1 bis 10 lässt sich (im Batch, ansonsten nur ein einzelnes Prozentzeichen für die Modulo-Operation) einfacher mit
set /a Zufall=%random% %% 10 + 1
erzeugen ...

Grüße
bastla

P.S.: Du scheinst von den Anwendern Deines Batches keine sonderlich hohe Meinung zu haben :
echo Ratte eine Zahl zwischen 1 und 10
(Und eigentlich fehlen da auch die Satzzeichen "," und "!")
Bitte warten ..
Mitglied: Power-Poler
23.01.2011 um 13:59 Uhr
Ok, danke das war es wohl.
Wo besteht für den Interpreten den der unterschied zwischen 10 und "10" ??
Das andere, echo Ratte eine Zahl zwischen 1 und 10; bin noch nicht fertig, und warum ein !?
Bitte warten ..
Mitglied: bastla
23.01.2011 um 14:04 Uhr
@Power-Poler
Wo besteht für den Interpreten den der unterschied zwischen 10 und "10" ??
Na ja, Zahl vs Text?
"10" ist nunmal kleiner als "2", da ja bei einem Textvergleich zeichenweise vorgegangen wird ...
Das andere, echo Ratte eine Zahl zwischen 1 und 10; bin noch nicht fertig, und warum ein !?
Meintest Du denn nicht:
Ratte, eine Zahl zwischen 1 und 10!
0

Grüße
bastla
Bitte warten ..
Mitglied: Biber
23.01.2011 um 18:59 Uhr
[OT]
Zitat von bastla:
Ratte, eine Zahl zwischen 1 und 10!
0
Bei Userinnen schreibt er ja vielleicht
Mäuschen, eine Zahl zwischen 1 und 10!
[/OT]
Bitte warten ..
Mitglied: Power-Poler
23.01.2011 um 19:11 Uhr
hmpf
Werde das natürlich noch ändern

*Irgendwie fehlt mir hier der SchmolSmiley*
Bitte warten ..
Mitglied: pieh-ejdsch
24.01.2011 um 00:44 Uhr
moin Power-Poler,

direkt nach der Zeile 12:
set /p "Eingabe= "
kannst Du noch diverse eine bessere Prüfung Einbauen
01.
(
02.
set /a "Eingabe=%eingabe%"
03.
) 2>nul || set "Eingabe=0"
somit kannst Du auch Gefahrlos die (Überflüssigen) doppelten Hochkommata in den VergleichsZeilen weglassen

Zeile 18 und 32
set /a Falsch=%Falsch%+1
kannst Du aus so schreiben
set /a Falsch+=1
Gruß Phil
Bitte warten ..
Mitglied: Power-Poler
24.01.2011 um 18:50 Uhr
OK Danke, wusste nicht das ich Variablen auch so Hoch Zählen lassen kann.

Was überprüft den Zeile 1-3 ?
Was meinst du mit "doppelten Hochkommata" ?
Auf Welche Zeile beziehst du dich hier
Bitte warten ..
Mitglied: pieh-ejdsch
24.01.2011 um 20:19 Uhr
moin Power-Poler,

es wird alles andere Eingegebene ausser Ziffern selbst als Variable aufgelöst. wenn die Variable nicht definiert ist wird sie auch nicht gesetzt. Also der Wert 0 wird eingetragen.
wenn Du "a b" eingibst würde(n) ein/mehr Operand(en) zum Berechnen fehlen. Daher das ganze in einer Klammer und der Abschluss mit 2>nul || set "Eingabe=0", damit der Fehler erkannt wird und die Variable auf 0 gesetzt wird.
wenn Du zufall eingibst wird die Variable zufall als Zahl gesetzt.

die VergleichsZeilen (das was bastla schon erwähnt hat)
if "%Eingabe%" lss "%Zufall%" goto :Groesser
if "%Eingabe%" gtr "%Zufall%" goto :Kleiner
if "%Eingabe%" equ "%Zufall%" goto :Richtig
if "%Eingabe%" equ "Ergebnis" goto :Ergebnis
wird immer ein Vergleich auf der Basis von Zeichenfolgen vonstatten gehen:
if "aa" lss "ab" echo ja
das entsprich genau der Sortierung nach dem Alphabet, so wie die Reihenfolge der Wörter im Duden oder bei der Ausgabe vom Befehl DIR (ohne sortierung) ist.
Zahlen werden so hier Sortiert wie das Beispiel für die CMD Line:
(for %i in (2 4 6 8 10 11 1 3 5 20 100 22) do @echo %i)|sort
1
10
100
11
2
20
22
3
4
5
6
8
da siehst Du auch gleich, dass ein Zeichenvergleich ganz anders die ZahlenReihenfolge hat.

schreib daher Reine Zahlenvergeleiche mit Variablen ohne Umschlossene Doppelte Hochkommata
if %Variable% geq 1 echo Variable ist größer als 1
Gruß Phil
Bitte warten ..
Mitglied: Biber
24.01.2011 um 20:54 Uhr
Moin pieh-ejsdch,

meinst du nicht, du hättest wenigstens einen Teil der kurzen Fragen ähnlich kurz&knackig abfackeln können?
Zitat von Power-Poler:
Was meinst du mit "doppelten Hochkommata" ?
Anführungszeichen.

So zum Beispiel... *gg

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
TODO List in ( Batch )
gelöst Frage von clragonBatch & Shell4 Kommentare

Hallo Liebe Forum-Nutzer Ich habe heute versucht, mir eine Batch zu schreiben die Notizen anzeigt, aka eine Todo Liste ...

Batch & Shell

BATCH For Schleife Value mit führender Null hochzählen

gelöst Frage von BigSanchBatch & Shell6 Kommentare

Hi @ all Ich hab mal wieder eine Frage, da ich gerade ehrlich gesagt zu faul zum intensiv suchen ...

Windows 7

Win7 firewall list von

Frage von AtoAtoWindows 77 Kommentare

hallo in Win7 kann ich mit dem Befehl netsh advfirewall firewall show rule status=enabled name=all zeige alle Rules, die ...

Visual Studio

VisualBasic List of FindRange

Frage von Herbrich19Visual Studio4 Kommentare

Hallo, Ich habe zwei Listen von Typ Byte. Ich muss nun den Range in ListA finden, dieser entspricht den ...

Neue Wissensbeiträge
Viren und Trojaner

Staatstrojaner soll auch per Einbruch installiert werden können

Information von transocean vor 1 TagViren und Trojaner2 Kommentare

Moin, Bundesinnenminister Horst Seehofer will dem Verfassungsschutz Wohnungseinbrüche erlauben, um den geplanten Staatstrojaner zu installieren. Gruß Uwe

Windows 7
Win7 Update scheitert KB4512506
Information von infowars vor 1 TagWindows 7

Falls jemand auch das Problem hat mit dem: Monatliches Sicherheitsqualitätsrollup für Windows 7 für x64-basierte-Systeme (KB4512506) Das scheint mit ...

Humor (lol)
Wenn hacken nach hinten los geht
Information von em-pie vor 2 TagenHumor (lol)5 Kommentare

Moin, weil heute Freitag ist, nachfolgender kurzer Artikel zum schmunzeln:) l+f: NULL ist ein notorischer Falschparker

Windows Update
Windows: August 2019 Patchday-Probleme
Information von kgborn vor 3 TagenWindows Update3 Kommentare

Ich kippe mal einige kurze Informationen hier rein - vielleicht hilft es Betroffenen. Die August 2019-Updates für Windows haben ...

Heiß diskutierte Inhalte
Switche und Hubs
Glasfaser-Anschluss Telekom muss verteilt werden
Frage von cansoniSwitche und Hubs28 Kommentare

Vorweg: Bin nur Anwender und kein Experte Die Situation: Der Vermieter stellt einen Glasfaseranschluss in der Wohnung bereit. Wir ...

Ubuntu
Download manchmal langsam oder komplette Abbrüche bzw. Videos spielen nicht bis zum Schluss
Frage von stefanstpUbuntu17 Kommentare

Immer wieder berichten unsere Kunden, dass Downloads abbrechen oder super langsam sind oder Videos nicht abgespielt werden können bzw. ...

Hyper-V
VMs von Hyper-V auf externer Festplatte
Frage von SnowbirdHyper-V17 Kommentare

Hallo, ich möchte gerne von VirtualBox auf Hyper-V umsteigen und würde auch gerne weiterhin meine VMs auf der externen ...

Festplatten, SSD, Raid
SSDs durch Lagerung ohne Strom nach 6 Monaten defekt?!?
gelöst Frage von GlobetrotterFestplatten, SSD, Raid15 Kommentare

Moin Gemeinde Ich hatte gerade nen Trauerspiel Habe hier etliche NAS-Geräte herumfahren welche ich mal auf die Seite gelegt ...