Vollständige Version anzeigen : [Batch]Frage zu %RANDOM%


DavyDave
07.05.2008, 03:24

Hey,
also ich habe eine Bat "geschrieben" die per klick ermöglicht die IP zu ändern, jedoch ist das Problem das die IP eben gleich bleibt.

Der nette Befehl "%RANDOM%" gibt mir zwar eine Random zahl, nur die ist 5 Stellig...

Nun meine Frage, geht es in der Bat, einen random zahlenwer von 1-254 bzw. 0-255 (die letzte Zahl in der IP sollte ja keine 0 oder 255 sein..;) zu erstellen?

Wenn das nicht geht, wie kann ich das anderst umsetzen, aber so, das ich da auch noch verstehen? ^^

Mit VB oder c++ geht das, das ist klar ... aber wie sieht es mit der one-click funktion aus und einffachheit?

MfG
Dave

HardwareSuche.com Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
Overkiller
07.05.2008, 08:45

Generier doch einfach mehrere RANDOM Zahlen und zieh sie solange von einander ab bis sie 0 < und > 255 sind.


styxx
07.05.2008, 10:02

Naja, du willst zahlen von 0-255. (2^8 Zahlen)

%RANDOM% liefert sehr wahrscheinlich Zahlen von 0 - 65535. (2^16 Zahlen)

Von daher solltest du einfach die 65536 Möglichkeiten die %RANDOM% erstellt jedesmal durch 256 Teilen und anschliesend 1 abziehen um die 0 als Zahl zu haben.

Ich kann leider absolut kein Batch, von daher ist das hier jetzt nur Pseudocode :P

((%RANDOM% + 1) / 256) - 1)

Edit:

B0B's code funktioniert, hab dadurch jedoch einen Fehler bei meiner "Formel" gefunden.
Als Ergebnis hab ich Zahlen zwischen -1 und 125 erhalten (Zufallstests).

Um die -1 zu beheben =>

(%RANDOM% + 1) / 256)

Außerdem scheint %RANDOM% nur zahlen von 0 bis 32767 auszugeben =>

(%RANDOM% + 1) / 128)

Der Code lautet deshalb :

set /a zahl = (%RANDOM% + 1) / 128
echo %zahl%


Getestet! Funktioniert zu 99,9%. Sowohl die Zahl 0 als auch die Zahl 255 erhalten


B0B
07.05.2008, 12:54

set /a zahl = ((%random% + 1) / 256 ) - 1
echo %zahl%


ungetestet!


DavyDave
07.05.2008, 16:21

klasse, passt alles =)

hab das so gemacht:

;echo off
color a
set /a zahl1 = (%RANDOM% + 1) / 128
set /a zahl2 = (%RANDOM% + 1) / 128
set /a zahl3 = (%RANDOM% + 1) / 128
echo.
echo.
echo.
echo Ihre IP-Adresse wurde in folgende geaendert:
echo.
echo 10;%zahl1%;%zahl2%;%zahl3%
pause > NUL


Falls es dann jemand interessiert kann ich die ganze Batchdatei posten... (aber erst morgen, hab die nich hier..;) bzw. PN


Ähnliche Themen zu [Batch]Frage zu %RANDOM%
  • [Script] Frage zu batch
    hi kann man auch irgendwie die befehle bei batch verstecken also z;B. wenn ich da was eingebe er sol dies und dies kopieren und das wird ja immer angezeigt den es öfnet sich immer DOS und zeigt das an das er kopiert und, kann man das austellen das net angezeigt wird oder einfach net alles angezeigt [...]

  • Batch-Frage
    Wenn beide Programme per cmd angesteuert werden können: ;echo off deinerstes deinnächstes Bsp ;echo off ftp ping ;;google~de PAUSE erst wenn du ftp beendest geht ping los. [...]

  • [Batch/Bash] Batch-Befehle durch Batch in Batch schreiben lassen
    Ich liebe den Titel :D Ich habe folgendes Problem: Ich möchte per Batch ein paar Befehle in eine andere Batchdatei schrieben lassen. Ich hab mir das in etwa so vorgestellt. "echo "#######" " >> BatchNr2;bat Aber irgendwie bekomme ich dann eine leere Datei udn wenn ich so versuche: ech [...]

  • Frage zu random(Zufallswerte)
    Entweder du machst es wie von Kain beschrieben, oder wenn du es ganz simpel machen willst, dann nimmst du eine switch-case Anweisung, in der du die 9 Permutationen der Auswahl ausflistest und dann eine eine beschränkte Zufallszahl ( von 0 bis 8 ) verwendest. So z;b;: randomize(); switch(rand()%9 [...]



raid-rush.ws | Imprint & Contact pr