Untitled Document
mIRC in Italiano - Script - Forum - Imposta come Home Page - Aggiungi ai Preferiti - Home - Chat
Utenti connessi: - Visitatori oggi: - Visitatori totali: - Pagine viste oggi:


NewsLetter


localmirc
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----
-
----

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

----
File Batch
lIn questa guida vedremo come poter creare ed utilizzare i file batch (.bat) attraverso il mIRC. In pratica
faremo comunicare il nostro client con il vecchio dos.

Iniziamo subito con un breve tutorial sui comandi basilari per la creazione dei file batch,
inserendo qualche esempio per capirne meglio la sintassi e la struttura.

Apriamo un editor di testo (notepad) e scriviamo al suo interno:

REM ------INIZIO CODICE-------
@echo off
cls
title NETSTAT TUTTOIRC.IT
echo NETSTAT PER PROVA SCRIPT
echo Di seguito verrano riportare le porte utilizzate dal sistema:
netstat -na
pause
REM -------FINE CODICE--------

Fatto cio' salviamo il nostro lavoro e modifichiamo l'estenzione del file da .txt a .bat
Chiameremo il nostro file Net.bat
Adesso clicchiamoci sopra due volte ed avviamo la sua esecuzione. Come potete notare
il titolo della finestra e' "NETSTAT TUTTOIRC.IT", impostato dal nostro file con il comando TITLE.
echo off fa si invece che venga visualizzata l'esecuzione del comando ma non la scrittura dello stesso,
mentre la chiocciolina "@" fa si che il comando che la segue non venga visualizzato.

Proseguiamo adesso con l'analisi dei comandi:

IF
GOTO
SET

Diamo una breve spiegazione per ognuno:

IF
Con questo comando è possibile creare dei criteri di paragone all'interno di file batch.
Sintassi IF
IF [NOT] ERRORLEVEL numero comando
IF [NOT] stringa1==stringa2 comando
IF [NOT] EXIST nomefile comando

Ponendo il not davanti ai criteri di paragone si comunicherà al sistema di eseguire i comandi solo nel caso
quella condizione non risulta vera. Esempio:
IF NOT pippo == pluto echo condizione non vera

ERRORLEVEL Controlla se l'ultimo programma eseguito ha restituito un "numero" maggiore o uguale a quello specificato
stringa1 == stringa2 Confronta le 2 stringhe e verifica se sono uguali
EXIST Controlla la reale esistenza di un file

Il comando inoltre può essere seguito da un ELSE che eseguirà i suoi comandi se la condizione citata in IF risulta FALSA. Esempio:
IF pippo == pluto (echo condizione vera) ELSE (echo condizione non vera)

La sintassi IF/ELSE può essere stesa anche su 2 linee. Es
IF pippo == pluto echo condizione vera
ELSE echo condizione non vera

IF dispone anche di altri paramentri, disponibili solo le estensioni ai comandi sono abilitati, ossia:
/I
CMDEXTVERSION
DEFINED

/I offre maggiore flessibilità nel controllo di due stringhe. La sintassi è:
IF /I stringa1 O.P. stringa2
dove O.P. può essere:
EQU - uguale
NEQ - non uguale
LSS - meno di
LEQ - meno di o uguale
GTR - maggiore di
GEQ - maggiore di o uguale

CMDEXTVERSION è molto simile a ERRORLEVEL, la differenza sta che il confronto avviene su un numero di versione interna associato alle estensioni di un comando.

DEFINED invece controlla l'esistenza di una variabile di ambiente. Es
IF DEFINED prompt (echo variabile esistente) else (echo variabile inesistente)
IF DEFINED guida (echo variabile esistente) else (echo variabile inesistente)

Passiamo ora a GOTO
il comando goto dirige l'esecuzione su una determinata parte del file, che prende il nome di etichetta. L'etichetta deve essere preceduta dai :
capiremo meglio nell'esempio finale...

Con il comando SET è invece possibile creare una variabile, controllarne una, un gruppo o tutte le variabili esistenti:
Per creare una variabile si usa la sintassi: SET nomevar=valorevar
Esempio:
SET autore=Guerrjero
ora facendo echo %autore% otterremo Guerrjero
facendo SET autore ci verrà dato il suo valore, ossia Guerrjero
citanto invece solo l'iniziale della parola, ci verrà dato l'elenco delle variabili che iniziano con quella lettera, omettendo anche quella invece avremmo l'elenco completo delle variabili (c:\SET)

A questo punto non ci resta che terminare con un esempio pratico.
Il file che andremo a creare simula la protezione di un testo attraverso password, la lettura del testo infatti sarà possibile solo quando inseriremo la password corretta, negli altri casi invece riceveremo un messaggio che ci avvertirà che la password inserita è errata.

create un file con questo codice e dategli nome msg.bat

REM ---- INIZIO CODICE ----
@echo off
@cls
set pw=%1
if "%pw%" == "" (goto par) else (goto avvio)
:avvio
echo PassWord d'accesso inserita: %1
if %pw% == nb139 (goto accesso) else (goto negazione)
:negazione
echo PassWord Errata... non puoi accedere alla lettura del file
goto end
:accesso
echo PassWord accettata
echo In questo spazio si potrebbe inserire, per esempio, un messaggio destinato ad un nostro amico che, grazie alla password, verra' protetto da occhi indiscreti
echo Saluti da Guerrjero (powered by www.tuttoirc.it)
goto end
:par
echo Sintassi errata:
echo Utilzzare msg PassWord
goto end
:end
REM ---- FINE CODICE ----

ora per usarlo andate nel dos e posizionatevi nella cartella dove risiede il file msg.bat
fatto questo fate 3 diverse prove:
1) c:\cartella\msg
2) c:\cartella\msg cammello
3: c:\cartella\msg nb139

Iniziamo subito col spiegare i primi dubbi... cosa indica quel %1 ?
semplice, indica la PRIMA parola inserita dopo il nome del file, ovvero la password. (nel nostro file infatti verra' presa in considerazione
solo la prima parola, scrivere "msg gino paolo" o "msg gino" è la stessa cosa, ma solo nel nostro esempio... :D ). Quindi %1 la prima parola, %2 la seconda e cosi via... %* restituisce tutte le parole.
Notate ora il comando goto:
come vedete si salta da una parte all'altra del file come se niente fosse, ma come? Semplice:
if "%pw%" == "" (goto par) else (goto avvio)
traduzione:
se il valore di pw è uguale a niente vai all'etichetta par (come vedete c'è una riga che inizia con :par da notare i : prima del nome del'etichetta)
se invece questo valore esiste vai all'etichetta avvio (:avvio)
Il resto credo sia ormai chiaro, cmq basta studiarsi pochi minuti quel codice per capire bene il tutto.

N.B.
Questo file è stato creato solo a scopo didattico, non pensiate di proteggere realmente messaggi in questo modo, in quanto un file batch è un file in chiaro.
Usando programmi di conversione in com/exe si potrebbero ottenere risultati non desiderati, il tutto dipende dalla flessibilità di conversione del programma stesso.

E' giunto finalmente il momento di passare al nostro mIRC :)
Per il nostro esempio creeremo due seplici alias, il primo capace di codare in automatico il file batch, ed il secondo in grado di leggerlo ed usarlo:

creabatch {
if !$exists($shortfn($scriptdirbatch)) { mkdir $shortfn($scriptdirbatch) }
if $exists($shortfn($scriptdirbatch\net.txt)) { .remove -b $shortfn($scriptdirbatch\net.txt) } | if $exists($shortfn($scriptdirbatch\net.bat)) { .remove -b $shortfn($scriptdirbatch\net.bat) }
.write $shortfn($scriptdirbatch\net.txt) @echo off
.write $shortfn($scriptdirbatch\net.txt) cls
.write $shortfn($scriptdirbatch\net.txt) title NETSTAT TUTTOIRC.IT
.write $shortfn($scriptdirbatch\net.txt) echo NETSTAT PER PROVA SCRIPT
.write $shortfn($scriptdirbatch\net.txt) echo Di seguito verrano riportare le porte utilizzate dal sistema:
.write $shortfn($scriptdirbatch\net.txt) netstat -na
.rename $shortfn($scriptdirbatch\net.txt) $shortfn($scriptdirbatch\net.bat)
}

usabatch {
.run $shortfn($scriptdirbatch\net.bat) > $shortfn($scriptdirbatch\netres.txt)
.play -es $shortfn($scriptdirbatch\netres.txt) 100
}

Unica cosa da spiegare credo sia ".run $shortfn($scriptdirbatch\net.bat) > $shortfn($scriptdirbatch\netres.txt)":
praticamente il simbolo > trasferisce il risultato del nostro comando bat nel file netres.txt, quindi nel nostro caso
il listato delle porte.

Come notate da soli non c'e' niente di difficile e complicato, ma con poche righe di codice si possono ottenere validi mezzi di controllo dei comandi dos piu' comuni e usati, come il ping, netstat, ipconfig, etc.
Naturalmente si possono creare combinazioni piu' ricche e potenti, come sempre il tutto sta in mano alla vostra fantasia :D

Guerrjero
www.tuttoirc.it




  Ultime dal forum mIRC Scripting

Vai al forum
Ultimi script e addon inseriti
Diablo III (14624)
Fancazzista Scr... (18764)
Sensuality scri... (7622)
Grand Theft Aut... (5154)
Stealth Script ... (8382)
-SagittarioScri... (18835)
Paradise Script (13753)
Trivia Game 200... (11882)
Ircap Script 8.... (5191)
RawScript 2.0 (8481)


 

 



Cerca nel sito

Le ultime news:



Sondaggio
Cosa vorresti di nuovo?

Risultati | Archivi

Statistiche Download
Database:
283 Files
241 Mb
Scaricati:
2659868 Files
Totale: 5615348Mb

Upload
Hai realizzato uno Script? Una addon? Una tcl? Un articolo? Qualsiasi cosa? Mandacelo ora! Utilizza il form upload per inviarci il tuo materiale e se lo riteniamo idoneo lo vedrai pubblicato nel portale!
[ Upload ]

Chat
Inserisci il tuo nick:



| Contattaci | Pubblicità | Staff |
Il presente materiale è Copyright TuttoIRC.it 2005. Leggi il Disclaimer