Total Hack Cheat
Benvenuto/a su Total hack Cheat....
non aspettate altro tempo Registratevi!!

Guida File .bat

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Guida File .bat

Messaggio Da RaYoZ il Sab Set 04, 2010 1:43 am

Primo capitolo:Cosa sono gli script Batch

Gli Script Batch apparvero con il debutto delle prime versioni di Windows. Di solito un file del genere, ha estensione ".BAT" ed è apprezzato per i seguenti motivi:

1.Risparmia il lavoro di digitazione dei comandi DOS
2.Consente di eseguire velocemente operazioni ridondanti

Possiamo definire uno script Batch, come anche gli script Python, non compilati, ma interpretati dalla Shell. La Shell è l'interprete dei comandi.

Questo tipo di script è così legato a Windows, tanto che viene eseguito il notissimo "AUTOEXEC.BAT" nella fase di bootstrap (operazioni che precedono l'avvio di Windows).

Secondo capitolo:La sintassi

Un file batch non ha una sintassi vera e propria, bensì usa i comandi del DOS. Per questo motivo non può essere definito un vero e proprio linguaggio di programmazione anche perchè, tra l'altro, non viene compilato ma direttamente interpretato dal DOS.

Come ottenere informazioni riguardo ai comandi?

Basta andare sul prompt (Start>Esegui>cmd) e digitare questa sintassi:

/?

Ad esempio: IF/?

Terzo capitolo:Istruzione Echo

Questa istruzione, è forse quella più importante. Ed ha due principali funzioni: quella di mostrare o nascondere il percorso in cui si sta lavorando, l'altra è quella di mostrare semplici messaggi a video. Altra cosa da dire sul batch, a condizione che l'echo sia spento, è che non viene mostrato a video la sintassi, ma solo l'output.

Accendere e spegnere l'echo:
Naturalmente quando apriamo il prompt l'echo è acceso, basta digitare "echo" senza parametri e sapremo se è attivo o meno. In questa immagine vedremo cosa accade quando "spegniamo" l'echo.



Nel secondo caso vediamo che il percorso sparisce.

Sintassi:

@echo on
Questa istruzione ci permette di lasciare acceso (ON) l'echo.

@echo off
Questa istruzione è il contrario di quella precedente, l'echo è spento (OFF).

Stampare un messaggio:
Le capacità di Echo non terminano qui, possiamo anche stampare un testo sullo schermo, o meglio come dice la sua guida, "Visualizza messaggi [...]". Se spegneremo l'echo, vedremo solo e solamente il testo già "stampato".

Sintassi:

echo
Dove messaggio è il testo da stampare. Visualizza il testo sullo schermo.

echo.
Visualizza una riga vuota.

Ho fornito (e anche ben spiegato) come usare questa istruzione, vi lascio ora con una screen che vi farà vedere la guida che da il DOS su questo comando.



Quarto capitolo:Istruzione Pausa

Prima abbiamo visto cos'è l'istruzione Echo, adesso, prima di fare i primi esempi, spiegherò l'istruzione Pause, per un motivo che dirò in seguito.

Se digitiamo al prompt "pause/?", apparirà "Interrompe l'elaborazione di un programma batch [...]", ma al solito mio, desidero spiegare in modo più approfondito.

Pause, come si intuisce, mette in pausa il "flow", cioè la sequenza delle informazioni, che poi ripartiranno quando si preme un tasto. Nel prompt apparirà "Premere un tasto per continuare..."


SINTASSI:

pause
Mette in pausa il programma visualizzando "Premere un tasto per continuare"


Alta "personalizzabilità":



Non proprio possiamo personalizzare il pause, ma possiamo nasconderlo. Metteremo prima di esso un echo col nostro messaggio personale.


SINTASSI:

pause>nul
Mettendo il >nul subito dopo il comando, nasconderemo l'output.


Adesso per mettere in pausa useremo questo codice:


CODICE:


echo Testochevoglio
pause>nul


Adesso vi chiederete perchè ho parlato di questo, prima di continuare con la pratica... per un semplice motivo, se facciamo file con l'echo e li "lanciamo", non vedremo una mazza, perchè lo script terminerebbe subito, quindi per evitare questo, inseriremo il pause.

Quinto capitolo:Lo script Hello World


Dopo che abbiamo appreso correttamente le istruzioni "Echo" e "Pause", possiamo addentrarci nella programmazione vera e propria.

Per fare tutto ciò basta il Blocco note.

1. Apriamo il blocco note
2. Inseriamo la sintassi

CODICE:

@echo off
echo Hello World
echo.
echo Premi un tasto per uscire
pause>nul



3. Salviamo il file con il nome "1.bat" sul desktop
4. Avviamo lo script batch.



Se avete inserito il codice corretto, il risultato nel prompt sarà simile.

Sesto capitolo:L'Istruzione Type e More

Per rendere più chiaro il codice, soprattutto quando devono essere stampati a video interi testi (ad esempio il Proemio dell' Iliade), possiamo risparmiarci di usare gli echo, ma di creare un file di testo contenente ciò che vogliamo visualizzare a video. Passiamo subito all'esempio:

CODICE:

@echo off
type proemio.txt
echo.
echo.
pause


Per prima cosa, dobbiamo salvare il file proemio.txt nella cartella in cui metteremo il file batch.
Ricordiamo di mettere almeno un' echo., altrimenti l'output successivo verrà attaccato al testo.

Ah, evitiamo gli accenti, usiamo al posto di essi l'apostrofo. Ad esempio, "è" diventerà "e'".

Usare |more
Se vogliamo che il testo venga letto un pò alla volta e schermata per schermata (soprattutto se è molto lungo), modifichiamo il codice come segue:

CODICE:

@echo off
type proemio.txt|more
echo.
echo.
pause


Dobbiamo ricordare queste cose, perchè potranno servirci nei prossimi esempi.

Settimo Capitolo:Leggere dalla riga di comando

Questa utile funzionalità degli script batch è quella di poter leggere argomenti dalla riga di comando.

Ad esempio se volessi richiamare il primo argomento scrivo "%1", se voglio leggere il secondo argomento, inserirò "%2" e così via.


ESEMPIO:

@echo off
echo Hai immesso '%1' dalla riga di comando
echo Premi un tasto per uscire.
pause>nul


Salviamo in C:WINDOWS il file leggi.bat

Adesso inseriamo nel prompt:

leggi "IO SONO PEPPE"

Apparirà a video quello che è stato immesso, presentato in una forma simpatica.

Ottavo Capitolo:Usare gli IF per decidere a seconda dei parametri di comando

L'istruzione IF fa eseguire operazioni condizionali al programma batch. Ogni if restituisce un Errorlevel, che ha risultati numerici a seconda se l'operazione è andata a buon fine o no.
Adesso, vale la pena dire, che l'uguaglianza tra due stringhe (quali gli argomenti) si esprimono con "stringa1==stringa2". Passiamo subito al codice...


CODICE:

@echo off
echo SONO IL TUO ROBOT
echo.
IF %1==ciao echo Salve Padrone
IF %1==grazie echo Prego
echo.
echo PREMA UN TASTO PER USCIRE
pause>nul

Salviamo il file in C:Windows col nome "robot1.bat"
Adesso nel prompt inseriamo "robot1 ciao" e vedremo che il nostro robot ci risponderà, se invece inseriamo "robot1 grazie", ci risponderà dicendoci "prego".

Nono capitolo:Muoversi nel programma

Partiamo da un programma fatto così:


CODICE:

@echo off
IF %1=O
IF %1==RE
IF %1==MI
IF %1==FA
IF %1==SOL
IF %1==LA
IF %1==SI
IF %1==esci
pause


Non è possibile scrivere più di un comando in un if, ma dobbiamo trovare un modo per poterci muovere nel programma, andare cioè in piccoli pezzi, uscendo dalla sequenzialità delle operazioni.

Ciò che ci serve è un SEGNAPOSTO, a cui possiamo assegnare un nome. Un segnaposto si crea in questo modo:

:nomesegnaposto

dove "nomesegnaposto" può essere uno qualsiasi. Si possono eseguire le istruzioni di un segnaposto tramite GOTO che ha questa sintassi:

GOTO nomesegnaposto

Adesso modifichiamo l'esempio


CODICE:

@echo off
:main
IF %1=O GOTO do
IF %1==RE GOTO re
IF %1==MI GOTO mi
IF %1==FA GOTO fa
IF %1==SOL GOTO sol
IF %1==LA GOTO la
IF %1==SI GOTO si
IF %1==esci GOTO close
:do
echo Hai scelto DO
goto close
:re
echo Hai scelto RE
goto close
:mi
echo Hai scelto MI
goto close
:fa
echo Hai scelto FA
goto close
:sol
echo Hai scelto SOL
goto close
:la
echo Hai scelto LA
goto close
:si
echo Hai scelto SI
goto close
:close
pause


Il codice è un po' lunghetto, ma ora potrebbe servirci un codice per chiudere il prompt. Il comando che serve al nostro caso è:
EXIT

Adesso nel codice di prima, cambiamo i comandi del segnaposto "close" in:

:close
pause
exit

Fate una prova...

Decimo Capitolo:Le variabili d'ambiente e i commenti

Scrivete "set" nel prompt...
Troverete una bella lista con info sul vostro sistema, sono le variabili di ambiente (variano da computer a computer), queste ci servono per capire qual'è ad esempio l'unità principale (in molti casi C) eccetera... Potete "scartabellare" tra le variabili d'ambiente. Se vogliamo aggiungere una nostra variabile d'ambiente, digitiamo:

set nomevariabile=valorevariabile

Ad esempio:

set peppe=padrone

Creeremo la variabile d'ambiente peppe.

Possiamo anche rappresentare la stringa di una variabile (ad esempio se la vogliamo utilizzare per l'istruzione "echo". Vi propongo un programmino che crei la variabile peppe e la stampi a schermo.

CODICE:
@echo off
set peppe=padrone
echo % peppe%

Dove il simbolo di percentuale, rappresenta la stringa della variabile. Quindi % peppe% rappresenta il valore della variabile.

Adesso passiamo alla creazione di commenti... usiamo l'istruzione REM con questa semplice sintassi:

REM commento

Undicesimo capitolo:Istruzione Start

Adesso entriamo in un bivio: Windows XP oppure no? Ci sono istruzioni che ai possono fare solo in Windows XP... Parliamo per adesso di Windows XP:
Lo scopo di Start è quello di avviare un'applicazione. La sintassi è:

START nomeprogramma

Possiamo aggiungere /MIN dopo nomeprogramma per avviarlo ridotto a icona oppure /MAX per ingrandirlo, /WAIT per attendere sino alla chiusura, non sono comunque obbligatori. Possiamo passare anche argomenti al programma.

Adesso inziamo con l'esempio:

@echo off
echo Stai inviando '%1' nel file '%2'
echo Premi un tasto per confermare
pause>nul
cls
echo Invio output al blocco note...
echo %1>%2
start notepad %2
echo Invio riuscito, premere un tasto per uscire.
pause>nul
exit

Adesso chiamiamo da riga di comando "createtxt "SI LA SOL" prova$1.txt" e apriremo notepad con la scritta "SI LA SOL".

Dodicesimo capitolo:Lo script Autorun

Adesso vi farò vedere quanto è facile trasformare un semplice script in un (quasi)programma, il tutto è molto semplice... Fino ad ora abbiamo scritto nei files in una riga sola, ma adesso impariamo a scrivere in più righe. Prima usavamo questa sintassi:

SINTASSI:

echo CIAO>ciauz.txt


Ma se volessimo scrivere sulla seconda riga ? Anzichè usare > useremo >> . Dopo aver puntualizzato questo, ecco la sintassi per creare autorun:


SINTASSI:

@echo off

goto main

IF %1==help echo Sintassi: AUTORUN nomeprogramma
echo nomeprogramma = programma da avviare
echo.
echo Premere un tasto per uscire
pause>nul
goto end

:main
echo [autorun] >autorun.inf
echo open=%1 >> autorun.inf
cls
echo File AUTORUN.INF creato con successo.
echo Premere un tasto per uscire
pause>nul


:end
pause>nul
exit
:end


Concludiamo la prima parte sulla panoramica, adesso addentriamoci nella parte un tantino più teorica.

Tredicesimo capitolo:Ricapitolando

Ricapitoliamo adesso mettendo le informazioni brevi sui comandi appena imparati:

ECHO e TYPE:
Il primo serve per stampare a schermo una riga di testo, ma può essere usato per mostrare/nascondere l'invio dei comandi al prompt. Si usa "@echo off" per nascondere e "@echo on" per mostrare.
Il secondo serve per stampare sullo schermo il contenuto di un file tramite la sintassi "type nomefile".


PAUSE:
Consente di mettere in pausa l'esecuzione in un certo punto del programma, può essere nascosto tramite la sintassi "pause>nul".


GOTO:
Serve per andare ad un certo segnaposto (etichetta) del programma identificato da un nome preceduto dal simbolo ":". La sintassi per andare all'etichetta desiderata è "echo etichetta", per creare l'etichetta si usa ":etichetta".


START:
Serve per avviare un programma ed ha la semplice sintassi di "Start nomefile". Può avere anche parametri.


MORE:
Visualizza lo script schermata per schermata.

Per chi è ancora alle prime armi e ha ancora dubbi, è invitato a rileggere dal capitolo 4° al capitolo 13°.

Chi non ha alcun dubbio può proseguire con la lettura.

Quattordicesimo capitolo:Istruzione color

Questa istruzione è disponibile solo su Windows XP.

Per dare un colore allo sfondo e al testo del prompt, si usa questa istruzione. L'istruzione ha la sintassi "COLOR n1n2" dove n1 è il carattere che identifica il colore di sfondo e n2 che identifica il colore del testo.

Ecco i caratteri che corrispondono ai colori:

0 = Nero 8 = Grigio
1 = Blu scuro 9 = Blu
2 = Verde A = Verde limone
3 = Verde acqua B = Azzurro
4 = Bordeaux C = Rosso
5 = Viola D = Fucsia
6 = Verde oliva E = Giallo
7 = Grigio chiaro F = Bianco

Se inserisco "Color 14" Avrò testo Bordeaux su sfondo Blu scuro perchè 1 corrisponde al blu e 4 al bordeaux. Passiamo ora ad un semplice esempio:

CODICE:

@echo off
COLOR 0%1

Adesso salviamo con il nome "coloratesto" e lascio a voi immaginare il risultato che avrete nel prompt!

Quindicesimo capitolo:Strutturiamo batch


Dal fatto che Batch non è un vero linguaggio di programmazione, non esistono nè oggetti, nè dati, nè strutture. Però, tramite l'uso dei segnaposto, possiamo strutturare gli script, soprattutto se sono lunghi. D'ora in poi tutti gli esempi saranno strutturati. La strutturazione (da me inventata) è molto semplice ed è composta da tre parti pincipali:


begin
end
main


Ecco l'esempio d'uso della strutturazione:

CODICE:

:begin
REM Inizio dello script
@echo off
Color FC

:main
REM Metodo Principale
echo Hai inserito %1 e %2

:end
REM Fine dello script
echo.
echo Premi un tasto per uscire
pause>nul


Se la struttura è ben fatta, possiamo risparmiare tempo alla digitazione in quanto, ad esempio, per uscire dallo script, scriviamo "goto end".

Sedicesimo capitolo:Internet e Batch

In questo e nel successivo capitolo, affronteremo la tematica di "Internet + Batch". Questa tematica è molto affascinante e ricca di sorprese. In questa parte ci dedicheremo al PING.

Cos'è il Ping ?
Il PING è l'acronimo di "Packet InterNet Groper", esso consente di inviare pacchetti a un host che puo essere anche un sito web. E' molto spesso uno strumento di conoscenze molto costruttivo, ma può trasformarsi in un vero e proprio attacco DoS. Attenzione a non confondere DoS con DOS, perchè sono due cose distinte, infatti DoS singifica "Denial Of Service" (Negazione del servizio). Chi vorrebbe approfondire DoS, può leggere questa voce di Wikipedia:

[Devi essere iscritto e connesso per vedere questo link]


Istruzione ping
L'istruzione Ping di Windows consente di inviare 4 pacchetti ad un sito web. Ad esempio: ping [Devi essere iscritto e connesso per vedere questo link] , vi darà la seguente risposta:


Esecuzione di Ping pierotofy.it [72.232.69.250] con 32 byte di dati:

Risposta da 72.232.69.250: byte=32 durata=288ms TTL=50
Risposta da 72.232.69.250: byte=32 durata=281ms TTL=51
Risposta da 72.232.69.250: byte=32 durata=281ms TTL=51
Risposta da 72.232.69.250: byte=32 durata=296ms TTL=50

Statistiche Ping per 72.232.69.250:
Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi),
Tempo approssimativo percorsi andata/ritorno in millisecondi:
Minimo = 281ms, Massimo = 296ms, Medio = 286ms


Ecco quindi come usare ping.In questo e nel successivo capitolo, affronteremo la tematica di "Internet + Batch". Questa tematica è molto affascinante e ricca di sorprese. In questa parte ci dedicheremo al PING.

Cos'è il Ping ?
Il PING è l'acronimo di "Packet InterNet Groper", esso consente di inviare pacchetti a un host che puo essere anche un sito web. E' molto spesso uno strumento di conoscenze molto costruttivo, ma può trasformarsi in un vero e proprio attacco DoS. Attenzione a non confondere DoS con DOS, perchè sono due cose distinte, infatti DoS singifica "Denial Of Service" (Negazione del servizio). Chi vorrebbe approfondire DoS, può leggere questa voce di Wikipedia:

[Devi essere iscritto e connesso per vedere questo link]


Istruzione ping
L'istruzione Ping di Windows consente di inviare 4 pacchetti ad un sito web. Ad esempio: ping [Devi essere iscritto e connesso per vedere questo link] , vi darà la seguente risposta:


Esecuzione di Ping pierotofy.it [72.232.69.250] con 32 byte di dati:

Risposta da 72.232.69.250: byte=32 durata=288ms TTL=50
Risposta da 72.232.69.250: byte=32 durata=281ms TTL=51
Risposta da 72.232.69.250: byte=32 durata=281ms TTL=51
Risposta da 72.232.69.250: byte=32 durata=296ms TTL=50

Statistiche Ping per 72.232.69.250:
Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi),
Tempo approssimativo percorsi andata/ritorno in millisecondi:
Minimo = 281ms, Massimo = 296ms, Medio = 286ms


Ecco quindi come usare ping.

Diciasettesimo capitolo:Internet e Batch II

Nella parte precedente abbiamo parlato di ping, questa volta parliamo di ipconfig e pathping.

Usare ipconfig
Questo speciale programma, ipconfig, consente di trovare l'indirizzo IP del nostro computer. Per sapere l'indirizzo IP, digitiamo "ipconfig" o "ipconfig /all"; se digitiamo il secondo otterremo le stesse informazioni del primo, ma più dettagliate.

Usare pathping
Questo è uno strumento che include le caratteristiche di ping e tracert (che consente di visualizzare i router che portano all'indirizzo web). Si usa "pathping sitoweb", ad esempio "pathping [Devi essere iscritto e connesso per vedere questo link] Vengono eseguite le analisi sui router, viene eseguito il ping e infine appaiono le statistiche in 4-6 minuti circa (250-400) di attività.

Diciottesimo capitolo:Usare le conoscenze su Internet e Batch

Le conoscenze affontate nei capitoli precedenti, possono essere applicate per creare un progetto che dovrà eseguire analisi di un indirizzo web. Ecco un esempio:


CODICE:

@echo off
echo Analisi in corso di '%1'...
echo.
echo L'operazione potrebbe richiedere qualche minuto.
echo Per interrompere premere CTRL+C in qualsiasi momento
echo Dopo l'analisi il file di log sara' salvato nel file:
echo 'traceof_%1.txt'
pathping %1>nul > traceof_%1.txt
echo Analisi terminata.
start notepad traceof_%1.txt
:end


Proviamo a creare il file batch e a chiamarlo dalla riga di comando (io l'ho chiamato itest). Ecco come apparirà:



Diciannovesimo capitolo:Istruzione Call

Può esserci la necessità di chiamare un file batch da un altro file batch senza l'interruzione di quest'utlimo. Il comando che ci consente di fare tutto questo è CALL.


SINTASSI:

call filebatch [parametri] [:segnaposto]


In pratica al posto di filebatch, inseriremo il nome dello script che vogliamo richiamare. Possiamo inviare anche parametri e/o chiamare un segnaposto (etichetta).


ESEMPIO:

@echo off
REM Chiamare un file batch
REM Al segnaposto "ifcalled"
call %1 :ifcalled
echo Hai richiamato %1


In questo modo sarà possibile eseguire un'altro script e non interrompere quest'ultimo.

Ventesimo capitolo:Istruzione Choice

Se siamo su Windows XP, ci serve l'eseguibile CHOICE.EXE che è possibile estrarre scaricando il Disco Supplementare MS-DOS 6.22 dal link [Devi essere iscritto e connesso per vedere questo link] … up622.exe. L'eseguibile dovrà essere copiato nella cartella Windows. Il problema non si verifica su Windows 98.

Choice, ci permette di effettuare scelte, nel senso che l'utente può scegliere una tra più opzioni. Ecco la sintassi:


SINTASSI:

choice /c:scelte


Dove scelte sono le lettere delle opzioni.


ESEMPIO:

choice /c:ab


In questo caso il prompt ci mostrerà:

[A,B]?

Dove viene richiesta una scelta.

Possiamo anche immettere una descrizione come in questo esempio:


ESEMPIO:

choice Scegliere sì o no /c:sn

Il prompt ci mostrerà:

Scegliere sì o no [S,N]?

Possiamo anche nascondere le scelte e il punto interrogativo.

ESEMPIO:

choice Scegliere A oppure B /c:ab /n

In una prossima lezione scopriremo come eseguire operazioni a seconda delle scelte.

Ventunesimo capitolo:Istruzione If Parte 1

L'istruzione IF, è la famosa istruzione che ci consente di operare in modo condizionale. IF ha svariati uso e serve principalemente per: elaborare l'errorlevel (ossia il codice di uscita che da un comando), confrontare due stringhe, verificare l'esistenza di un file.

Confonto di due stringhe:
E' questo il modo d'uso più semplice, anche perchè bisogna usare una sintassi non molto complessa:


SINTASSI:

if stringa1 == stringa2


Le stringhe possono essere i parametri della riga di comando, delle parole, delle variabili d'ambiente.


ESEMPIO:

@echo off
if "%1"=="A" echo ESATTO
if "%1"=="" echo NON HAI SCRITTO NULLA

Ventiduesimo capitolo:Istruzione If Parte 2

Elaborare a seconda dell'ERRORLEVEL:
Adesso è arrivato il momento di scoprire cos'è questo già citato "ERRRORLEVEL"; ogni istruzione, da un valore d'uscita che rappresenta l'esito dell'operazione. Impareremo ora ad eseguire operazioni a partire dalla scelta effettata col comando choice. Questo comando, da un errorlevel orientato a seconda del posto della scelta. Ad esempio se ho "choice /c:ab", "ERRORLEVEL 1" sarà la scelta A, mentre "ERRORLEVEL 2" sarà la scelta B. Ecco la sintassi:


SINTASSI:

if ERRORLEVEL numero ISTRUZIONI


Numero rappresenta il valore di errorlevel


ESEMPIO:

@echo off
choice Effettua una scelta /c:ab
if ERRORLEVEL 1 goto err1
if ERRORLEVEL 2 goto err2

:err1
echo Hai scelto il Proemio dell'Iliade
goto end

:err2
echo Hai scelto il proemio dell'Odissea

:end
echo Premi un tasto per uscire
pause>nul

Ventitreesimo capitolo:Istruzione If Parte 3

Confronto di due stringhe:
E' possibile, tramite l'uso di IF, confrontare due stringhe in questo modo:


SINTASSI:

if stringa1 operatore stringa2 ISTRUZIONI


L'operatore è una "sigla" che permette di confrontare due stringhe. Ecco gli operatori

EQU = uguale a
NEQ = diverso da
LSS = minore di
LEQ = minore o uguale a
GTR = maggiore di
GEQ = maggiore o uguale a


ESEMPIO:

@echo off
if "%1" GEQ "3" echo %1 è maggiore o uguale a 3
if "%1" EQU "prova" echo Hai scritto prova ed hai una penitenza
if "%1" LSS "200" echo %1 è minore di duecento
echo premi un tasto per uscire
pause>nul


E' possibile anche imporre al comando di non fare differenze tra maiuscole e minuscole. Per far questo basta anteporre "/I" prima della stringa 1.

Ventiquattresimo capitolo:Istruzione If Parte 4

Verificare l'esistenza di un file
Con If è possibile stabilire se un file esista o meno. A questo scopo si usa:


SINTASSI:

if EXIST nomefile ISTRUZIONI


Ecco un semplice programmino per la ricerca dei files:


ESEMPIO:

@echo off
if EXIST %1 echo Il file %1 esiste
pause

Tutto qui, EXIST è ciò che ci permette di stsblire se un file esiste.

Venticinquesimo capitolo:Istruzione If parte V

La clausola ELSE:
Partiamo da questo codice:


ESEMPIO:

@echo off
If "%1"=="prova" echo Scelta giusta


Come si fa ad eseguire istruzioni se non inseriamo "prova"? Non possiamo di certo prevedere tutto ciò che viene immesso! Allora entra in gioco la clausola else, che ci permette di eseguire istruzioni se scegliamo qualcos'altro. Ecco l'esempio con questa clausola:


ESEMPIO:

@echo off
If "%1"=="prova" (echo Scelta giusta) else echo Scelta sbagliata


In questo modo si riesce ad eseguire istruzioni se non si ottiene l'input desiderato.

L'operatore NOT:
E' possibile eseguire istruzioni anche se non si verifica la condizione. In questo modo, anteponiamo prima della condizione l'operatore logico NOT.


ESEMPIO:

@echo off
if EXIST %1 echo %1 esiste
if NOT EXIST %1 echo %1 non esiste

Ventiseiesimo capitolo:Istruzione For

Questa istruzione, ci permette di eseguire operazioni su un gruppo di file.


SINTASSI:

for %% variabile in (files) do istruzione


Come potrete intuire, si può eseguire una istruzione su dei files, rappresentati dalla %% variabile.


ESEMPIO:

@echo off
for %%f in (%1) do goto dsfiles
:dsfiles
echo File %%f :
echo.
type %%f
echo.


In questo modo creeremo un programma che mostra il contenuto dei files. %%f è la variabile, %1 rappresenta i files su cui lavorare e goto dsfileds indica l'azione da eseguire per ogni file.

Ventisettesimo capitolo:Utilizzo dei filtri e degli operatori

Sono disponibili tre filtri, che consentono di fare una specie di "crivello" per trovare e ordinare dei dati che si trovano in un file di testo. Per scrivere in un file di testo abbiamo usato l'operatore > che consente di scrivere in un file cancellando eventualmente il testo già contenuto. Possiamo invece usare l'operatore >> che accoda alla fine del testo già presente altro testo.


ESEMPIO:

@echo off
echo Prof. Rossi > prof.txt
REM Scrive la stringa "Prof. Rossi" nel file di testo "prof.txt"
echo Prof. Gialli > prof.txt
REM Scrive la stringa "Prof. Gialli" nel file di testo "prof.txt"
REM cancellando prima il suo contenuto.
echo Prof. Bianchi >> prof.txt
REM Scrive la stringa "Prof. Bianchi" nel file di testo "prof.txt"
REM accodando al contenuto preesistente.


E' possibile anche visualizzare una schermata alla volta, come descritto nella Lezione 7 (Istruzioni Type e More).

Può essere effettuata anche una ricerca all'interno del file, in questo modo:

ESEMPIO:

find "Prof. Gialli" < prof.txt

Si può anche ordinare alfabeticamente il testo in questo modo:

ESEMPIO:

type prof.txt | sort

C'è anche un modo per ordinare e cercare in un file di testo:

ESEMPIO:

find "Prof. Gialli" < prof.txt | sort

Avendo un po' di fantasia, possiamo creare un generatore di query:

ESEMPIO:

find "Prof. Gialli" < prof.txt | sort > query.txt


In poche parole possiamo fare un semplice script per creare query, con due sole righe!

ESEMPIO:

@echo off
find %1 < %2.txt | sort > % 3.txt

RaYoZ
Admin
Admin

Messaggi : 1040
Punti : 2245
Data d'iscrizione : 03.04.10
Età : 22
Località : immerso nei pensieri

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto

- Argomenti simili

 
Permesso di questo forum:
Non puoi rispondere agli argomenti in questo forum