Domanda:
Creare batch, che mi chieda una password?
?
2009-06-25 13:08:48 UTC
devo creare un batch che mi chieda una parola.
Se indovini quella parola esegue una lista di comandi
Se la sbagli ne esegue un altra.
(Penso si faccia con else e if ma non so come)
Mi fate degli esempi?
Tre risposte:
Tuccio
2009-06-26 06:01:43 UTC
Se per batch intendi un .BAT con comandi DOS su piattaforma Windows, allora è vero quanto segue:



Non esiste un comando che richieda un input da tastiera da utilizzare in un file batch ma è possibile crearlo con queste istruzioni:



avvia il prompt dos (da esegui -> cmd)



digita debug e premi invio



digita questo comando:



A 100



appariranno, uno alla volta le stringhe xxxx:0100 , xxxx:0102, ecc,ecc..



accanto a tali stringhe digita i comandi riportati sotto e premi invio (ricorda la stringa xxxx:0100 , xxxx:0102 non devi digitarle perchè appaiono da sole! devi solo digitare il comando accanto (esempio MOV AH,08 e premere invio) - quando arrivi alla stringa xxxx:010E non devi digitare nulla ma premere solo invio:



xxxx:0100 MOV AH,08

xxxx:0102 INT 21

xxxx:0104 CMP AL,0

xxxx:0106 JNZ 010A

xxxx:0108 INT 21

xxxx:010A MOV AH,4C

xxxx:010C INT 21

xxxx:010E

rcx

e

n REPLY.COM

w

q



Hai creato un eseguibile di nome REPLY.COM nella cartella corrente.



l'eseguibile REPLY.COM restituisce il valore ascii del carattere digitato



il batch lo esamina, e se è quello giusto va alla richiesta del secondo carattere e cosi via.

Se viene premuto enter (ASCII=13) prima di avere digitato la password giusta il programma va alla tag ERRORE.



Ti allego il BAT che ho fatto per te!





ecco il .BAT (che può essere migliorato..e testato a fondo)

************************************************************

@Echo off

path=C:\DOS

:Ask

Echo Richesta password...

:ASKB

Reply

If errorlevel 86 if not errorlevel 87 goto Ask2

If errorlevel 13 if not errorlevel 14 goto ERRORE

goto askB

:ask2

Reply

If errorlevel 73 if not errorlevel 74 goto Ask3

If errorlevel 13 if not errorlevel 14 goto ERRORE

goto askB

:ask3

Reply

If errorlevel 84 if not errorlevel 85 goto Ask4

If errorlevel 13 if not errorlevel 14 goto ERRORE

goto askB

:ask4

Reply

If errorlevel 79 if not errorlevel 80 goto Ask5

If errorlevel 13 if not errorlevel 14 goto ERRORE

goto ask



:ask5



Reply

If errorlevel 13 if not errorlevel 14 goto Ask5

goto ask4



:ASK5



Echo Hai detto VITO

netstat

goto end



:ERRORE

ECHO PASSWORD ERRATA!

GOTO ASK

:end

***************************************************



PS:If errorlevel 86 if not errorlevel 87 goto ask2



equivale a dire "il codice ASCII del carattere digitato è compreso tra 86 ed 86 ? allora goto ask2



86 = V

73 = I

84 = T

79 = O



Quindi la password giusta è VITO (in maiuscolo!)



So che questa risposta può sembrare PURA FOLLIA, ma se segui bene le istruzioni riuscirai nel tuo intento...
anonymous
2009-06-26 15:15:00 UTC
il batch..... che bei ricordi....



per fare immettere una password senza fare tutta la roba consigliata da Tuccio (molto interessante, metto il pollice in sù) puoi fare in modo che il file batch legge quello che gli scrivi in apertura.



ti faccio un esempio:

apri il prompt dei comandi e digiti "file.bat vito" (senza le virgolette)

il file batch riconosce la parola scritta dopo il nome del file da aprire (quindi riconosce "vito") e in caso sia quella da te prescelta continua il codice.

infatti se scrivessi "file.bat ciccio" riconosce che la parola inserita non è quella da te prescelta è ti dice che è sbagliata.



ti passo lo script

-------------------------------------------------------------------------------------

@echo off

:start

if %1==vito goto :continuazione

goto :errore

:continuazione

echo giusto!

pause>nul

exit

:errore

echo sbagliato

exit

-------------------------------------------------------------------------------------------------



per eseguirlo:

1) salva il file sul desktop con il nome di "password.bat" (senza virgolette)

2) apri il prompt dei comandi

3) digita :

cd "%HOMEPATH%/Desktop" (con le virgolette)



adesso sei situato nel desktop, basta che digiti il nome del file con l'estensione, poi uno spazio e poi il password



quindi digita:

---------------------------------------------------------------------------------

password.bat vito

-----------------------------------------------------------------------------------

ora il file ti rispondera "giusto!"



se invece fai

------------------------------------------------------------------------------

password.bat pino

----------------------------------------------------------------------------

il file ti risponderà "sbagliato"





capito?



se invece di una parola sola ne vuoi due staccate o usi %1 per la prima parola e %2 per la seconda (e così via per eventuali altre parole)

oppure metti le virgolette, ad esempio;

password.bat "ciccio banana"





credo che il modo detto da Tuccio sia il migliore (anche se non l'ho provato) ma con questo modo è molto più semplice.
Tizio 008
2009-06-25 21:33:37 UTC
ti può servire leggere

http://www.ss64.com/nt/



se lanci la cmd (Start -> Esegui -> "cmd"),

per ogni comando scrivere

help comando

o

comando /?

può rivelarti cose interessanti



in particolare

http://www.ss64.com/nt/set.html



tuttavia per immettere una "password" che venga nascosta, probabilmente devi manipolare il terminale in qualche modo che ora non mi viene in mente.


Questo contenuto è stato originariamente pubblicato su Y! Answers, un sito di domande e risposte chiuso nel 2021.
Loading...