Come faccio a generare un numero pari casuale con Applescript?

0

Sto provando a creare un oggetto Applescript che cambierà automaticamente l'indirizzo MAC del mio router. Alcuni campi devono essere numeri pari, ma non riesco a capire come generare solo numeri pari. Ecco cosa ho finora ..

set rand1 to (random number from 10 to 98) as string
set rand2 to (random number from 10 to 98) as string
set rand3 to (random number from 10 to 98) as string
set rand4 to (random number from 10 to 98) as string

tell application "Safari"
    activate
    open location "router-address/WanMAC.asp"
    tell application "System Events"
        delay 1
        keystroke "login"
        keystroke tab
        keystroke "password"
        delay 1
        keystroke return
        delay 1
        keystroke tab
        keystroke rand1
        keystroke tab
        keystroke rand2
        keystroke tab
        keystroke rand3
        keystroke tab
        keystroke rand4
        submit via javascript?
    end tell
end tell

Abbastanza rudimentale lo so. Ma l'idea di base è quella di inserire le credenziali di accesso, la scheda nei campi del modulo che devono essere modificati, inserire un indirizzo MAC valido e quindi inviare il modulo. Qualcuno può aiutare? Grazie.

    
posta Pieter 08.05.2013 - 22:23
fonte

4 risposte

2

Puoi moltiplicare per 2:

(random number from 5 to 49) * 2
    
risposta data 08.05.2013 - 22:32
fonte
0
set rand to (random number from 0 to 99)
if rand mod 2 is not equal to 0 then
    set rand to rand - 1
end if
    
risposta data 09.05.2013 - 02:13
fonte
0

Ecco un'altra opzione:

set rand1 to randNum(10, 98)

on randNum(low, high)
    (random number from low to high)
    tell the result to if it mod 2 = 0 then return it
    randNum(low, high)
end randNum
    
risposta data 09.05.2013 - 02:39
fonte
0

Ho pensato che si trattasse di un comodo codice per riordinare ed espandere un po '.

on evenRandomNumber(low, high)
    repeat
        set randomNumber to (random number from low to high)
        if randomNumber mod 2 = 0 then exit repeat
    end repeat
    return randomNumber
end evenRandomNumber

on oddRandomNumber(low, high)
    repeat
        set randomNumber to (random number from low to high)
        if randomNumber mod 2 ≠ 0 then exit repeat
    end repeat
    return randomNumber
end oddRandomNumber
    
risposta data 16.05.2013 - 17:01
fonte

Leggi altre domande sui tag