2600 SkimonHertz

Reply

GUIDA AI FILE IN .BAT, System32

« Older   Newer »
view post Posted on 2/11/2010, 23:25           Quote
Avatar

expert

Group:
2600 SkimonHertz Elite
Posts:
112
Reputation:
0

Status:


GUIDA AI FILE IN .BAT


DEFINIZIONE


I file batch sono file di testo che contengono uno o più comandi MS-DOS.



DESCRIZIONE



I comandi contenuti all’interno dei file batch sono eseguiti in sequenza, come se fossero digitati da tastiera. Qualunque comando che può essere dato da tastiera, può essere inserito in un file batch.
I file batch devono avere come estensione .BAT (da batch).


PERCHÈ SI UTILIZZANO I FILE BATCH



Spesso ci si trova a dover ripetere, con una certa frequenza, una sequenza di comandi. Un esempio pratico può essere il dover avviare un programma che si trova in un altro drive e all’interno di una directory; in questo caso si possono memorizzare i tre comandi all’interno di un file batch e, invece di digitare singolarmente ogni comando, basterà digitare il nome del programma batch per eseguire le operazioni richieste.

ESEMPI DI FILE BATCH



Ipotizziamo di creare un file batch che possa cambiare drive e visualizzare la directory principale. I comandi da inserire sono: A: e DIR. Digitare:

EDIT UNO.BAT

Dove EDIT è l’editor del sistema operativo, UNO.BAT è il nome del file batch. Digitare:

A:
DIR

Registrare ed uscire dall’editor. Per mandare in esecuzione il programma basta digitare:

uno

(non ha importanza se viene digitato con caratteri minuscoli o maiuscoli).

È importante utilizzare un editor del sistema operativo perché il file batch dev’essere registrato come testo non formattato, in altre parole privo di quei codici di controllo che vengono utilizzati dai vari word processor per scrivere con un particolare font, dimensione, o in corsivo, ecc.
Qualora si utilizzasse un word processor al posto di un editor, è bene registrare il file nel formato ASCII, altrimenti non può essere mandato in esecuzione.



AUTOEXEC.BAT

Un altro esempio di file batch è il file AUTOEXEC.BAT. In questo programma sono contenuti tutti i comandi necessari per l’avvio del computer: il settaggio di alcune variabili d’ambiente, come ad esempio la PATH o della scheda sonora, avviare il programma per la configurazione della tastiera, la preparazione delle tabelle (codepage), ecc.

I COMANDI



Oltre ai comandi che possono essere dati da tastiera, ce ne sono altri che sono stati creati specificatamente per i programmi batch:
Rem, Echo, Pause, Call, If, Goto, For, Choice.



REM

Consente di includere qualsiasi commento all’interno di un file batch o di un file CONFIG.SYS. Questo commento non è visualizzato durante l’esecuzione del programma.
Sintassi:
Rem commento


ECHO
Attiva o disattiva la visualizzazione dei nomi dei comandi oppure visualizza un messaggio.
Sintassi:
Echo on Attiva la visualizzazione dei nomi dei comandi
Echo off Disattiva la visualizzazione dei nomi dei comandi
Echo messaggio Visualizza un messaggio
Echo. Inserisce una riga vuota
Echo Inserisce una riga vuota
@Echo Il comando stesso non viene utilizzato


PAUSE

Sospende l’elaborazione di un programma batch e richiede all’operatore di premere un tasto per continuare.
Volendo interrompere l’esecuzione del programma batch, si deve premere la combinazione dei tasti CTRL+C e rispondere con S alla domanda “Concludere la procedura batch? (S/N)”.
Sintassi:
Pause


CALL


Consente ad un file batch di eseguire un altro file batch ed alla fine dell’esecuzione di quest’ultimo, il controllo passa al primo file batch.
Sintassi:
Call nomefile [parametri batch]

Parametri:
Nomefile
Specifica il nome del file batch da avviare. (É possibile indicare anche il percorso).

Parametri batch
Specifica qualsiasi informazione richiesta dal file batch sulla riga di comando.

Note:
I parametri batch possono contenere qualsiasi informazione che è possibile dare ad un file batch, incluse le opzioni, i nomi dei file, i parametri sostituibili da %1 a %9.

Esempio:
CD\Lavoro
CALL Nuovo
CD\Bilanci


GOTO


Salto incondizionato, cioè indirizza sulla riga di un file batch contrassegnata dall’etichetta specificata.
Sintassi:
Goto etichetta

Parametri:
Etichetta
Indica la riga di un programma batch su cui deve spostarsi.

Note:
Etichetta può includere spazi ed utilizza non più di otto caratteri. Quando si esegue il comando GOTO, si passa direttamente all’istruzione che segue la riga in cui si trova l’etichetta corrispondente.
Nella riga contenente l’etichetta non è ammesso altro.
La riga contenente l’etichetta deve iniziare con i due punti.

Esempi:
Se il programma PROG esiste nel drive A:, farlo eseguire altrimenti copiare il programma dal drive B: e poi farlo eseguire.
IF EXIST A:PROG.EXE GOTO NOCOPIA
COPY B:PROG.EXE A:
:NOCOPIA
PROG

Formattare il disco che si trova nel drive A: ed inserire il sistema operativo.
FORMAT A: /S
IF NOT ERRORLEVEL 1 GOTO END
@ECHO Si è verificato un errore durante la formattazione.
@ECHO.
:END
@ECHO Fine del programma


IF

Esegue il comando indicato se la condizione è soddisfatta.
Sintassi:
IF [NOT] condizione comando

Parametri:
NOT
Specifica che deve eseguire il comando se la condizione è falsa.
(Le parentesi quadre stanno ad indicare che l’uso del parametro NOT non è obbligatorio).

Condizione
La condizione può essere una delle seguenti:
ERRORLEVEL numero
La condizione è vera solo se l’ultimo programma o comando eseguito ha restituito un codice di stato o di uscita (e cioè di fine elaborazione) uguale o maggiore di “numero”.

STRINGA 1 = = STRINGA 2
La condizione è vera se stringa 1 è uguale a stringa 2. Questi valori possono essere anche variabili batch (da %0 a %9).

EXIST nomefile
La condizione è vera se il nome del file identificato da nomefile esiste. Nel nomefile è possibile indicare il percorso.

Comando
È un qualsiasi comando di MS-DOS.

Note:
Quando si utilizzano dei parametri ERRORLEVEL in un programma batch, effettuare un elenco seguendo un ordine decrescente.

Esempio:
Programma di gestione degli errori del comando Backup.
IF ERRORLEVEL 4 GOTO ERRORE4
IF ERRORLEVEL 3 GOTO ERRORE3
IF ERRORLEVEL 2 GOTO ERRORE2
IF ERRORLEVEL 1 GOTO ERRORE1
Rem Se tutto è a posto il codice di uscita è 0 (zero).
ECHO Il BACKUP è andato a buon fine.
GOTO Fine
:ERRORE1
ECHO Non sono stati trovati file da salvare.
GOTO Fine
:ERRORE2
ECHO Qualche file non è stato salvato per un conflitto di condivisione.
GOTO Fine
:ERRORE3
ECHO Backup interrotto da tastiera.
GOTO Fine
:ERRORE4
ECHO Backup interrotto per un errore.
:Fine
CD\

(Codici di uscita dei comandi COPY e DISKCOPY
0 = L’operazione è stata eseguita
1 = Si è verificato un errore rimediabile di lettura o scrittura
2 = Sono stati premuti i tasti CTRL+C per interrompere l’operazione
3 = Si è verificato un errore irreversibile
4 = Si è verificato un errore di inizializzazione)


FOR … IN … DO

Consente di ripetere un comando specificato dalla parola chiave DO su un insieme di file specificato dalla parola chiave IN e presi uno per volta dalla parola chiave FOR.
Sintassi:
Se il comando è dato all’interno di un file batch
FOR %%­variabile IN (insieme) DO comando [parametri del comando]

Se il comando è dato da tastiera
FOR %­variabile IN (insieme) DO comando [parametri del comando]

Parametri:
%%­variabile o %­variabile
Rappresenta una variabile sostituibile. Il comando FOR sostituisce a %%­variabile o %­variabile uno dopo l’atro tutti i nomi dei file indicati da insieme.

(insieme)
Specifica uno o più file (separati da spazi) e indicanti l’eventuale percorso (drive\percorso). Nei nomi dei file sono ammessi i caratteri jolly.

Comando
È il comando che si desidera applicare a ciascun file individuato da insieme.

[Parametro del comando]
Specifica quali parametri o opzioni devono essere utilizzati dal comando specificato.

Note:
Le variabili sostituibili utilizzano oltre il carattere % qualsiasi altro carattere ad eccezione dei numeri compresi tra 0 e 9, questo per evitare confusione con i parametri batch compresi tra %0 e %9.

Esempio:
Si voglia visualizzare il contenuto di tutti i file con estensione DOC e TXT della directory corrente:
FOR %f IN (*.DOC *.TXT) DO type %f
Ciascun file con estensione DOC e TXT contenuti all’interno della directory corrente, viene sostituito alla variabile %f fino a quando non vengono visualizzati tutti i file.

Nel caso in cui si voglia reindirizzare l’output verso la stampante
FOR %f IN (*.DOC *.TXT) DO > prn

Volendo ricercare la stringa “PROMPT” all’interno di tutti i file con estensione BAT
FOR %f IN (*.BAT) DO find “PROMPT” %f


CHOICE

Viene utilizzato per visualizzare l’input dell’utente. Tramite CHOICE è possibile visualizzare un prompt specifico, impostare un’interruzione per la scelta di tasti raggruppati in un set e restituire un parametro ERRORLEVEL al programma batch.
Sintassi:
CHOICE [/C[:]tasti] [/N] [/S] [/T[:]c,nn] [testo]

Parametri:
testo
Specifica il testo che verrà visualizzato prima del prompt. Le virgolette sono necessarie soltanto se si desidera includere un carattere di opzione (/) come parte del testo. Se non viene specificato alcun testo, CHOICE visualizzerà soltanto il prompt.

Opzioni:
/C[:]tasti
Specifica i tasti disponibili nel prompt. Se vengono visualizzati, i tasti appariranno separati dalla virgola, racchiusi tra le parentesi quadre ([]) e seguiti da un punto interrogativo. Se non viene specificata l’opzione /C, CHOICE utilizzerà Y/N come valore predefinito. I due punti ( : ) sono facoltativi.

/N
Non consente al comando CHOICE di visualizzare il prompt. Il testo prima del prompt verrà tuttavia visualizzato. Impostando l'opzione /N, i tasti specificati sono ancora validi.

/S
Fa in modo che CHOICE distingua le lettere maiuscole dalle lettere minuscole. Se l'opzione /S non viene specificata, CHOICE accetta sia le lettere minuscole che maiuscole per ogni tasto specificato dall'utente.

/T[:]nn,c
Sospende l’esecuzione per un numero di secondi specificato prima che venga effettuata la scelta di un tasto predefinito da parte del comando CHOICE. I valori per l’opzione /T sono i seguenti:
c
Specifica il carattere predefinito da usare dopo un numero nn di secondi. Il carattere deve essere compreso in un set specificato nell’opzione /C.

nn
Specifica il numero di secondi della pausa. I valori validi sono compresi tra 0 e 99. Il valore 0 indica che non verrà effettuata alcuna pausa.

Esempio:
Se viene utilizzata la seguente sintassi in un file batch,
choice /c:ync
All’avvio di CHOICE verrà visualizzato:
[S,N,C]?

Se viene aggiunto del testo alla sintassi,
choice /c:ync Si, No o Continua
All’avvio di CHOICE verrà visualizzato:
Si, No o Continua[S,N,C]?
Se viene utilizzata l’opzione /N per disattivare il prompt di un programma
batch, come nel seguente esempio,
choice /n Si, No o Continua?
All’avvio di CHOICE, verrà visualizzato soltanto il testo specificato:
Si, No o Continua?

Se viene utilizzata la seguente sintassi in un programma batch,
choice /c:ync /t:n,5
All’avvio di CHOICE verrà visualizzato:
[S,N,C]?

e se non viene premuto un tasto entro cinque secondi, CHOICE seleziona N e restituisce un valore ERRORLEVEL uguale a 2. Se viene premuto un tasto entro cinque secondi, CHOICE restituisce il valore corrispondente alla scelta dell’utente.
Ad esempio per poter visualizzare l’opzione per la compattazione dell’unità C all’avvio del computer, è possibile aggiungere al file AUTOEXEC.BAT quanto segue:
choice Defrag drive /ty,5
if errorlevel 2 goto SkipDefrag
defrag c:
:SkipDefrag

Se si preme N entro 5 secondi, DEFRAG non eseguirà e non CHOICE restituirà ad ERRORLEVEL un valore di 2. Se non si preme N entro 5 secondi, o se si sceglie S, DEFRAG viene eseguito sull'unità C.



PARAMETRI SOSTITUIBILI

I parametri sostituibili non sono altro che delle variabili, numerate da %0 a %9. Il nome del comando (o del file batch) viene assegnato alla variabile %0 non appena viene digitato al prompt, mentre i valori digitati dopo il nome del comando vengono assegnati alle variabili da %1 a %9. (La prima variabile della riga di comando è %1, la seconda è %2 e così via).

Esempio:
Si voglia creare un file batch che trasferisca un file da una directory ad un’altra. Ipotizziamo che il file da trasferire prenda il nome di LETTERA.1 e lo si voglia trasferire nella directory DOCUMENTI nel drive C:, quindi la sequenza dei comandi (digitandola dal prompt) è:
COPY A:LETTERA.1 C:\DOCUMENTI
DEL A:LETTERA.1

Dunque, i comandi da inserire nel file batch saranno:
COPY %1 %2
DEL %1

Assegnando a questo programma il nome di MUOVI.BAT, per avviare la procedura si dovrà digitare:
MUOVI A:LETTERA.1 C:\DOCUMENTI
MS-DOS sostituirà A:LETTRA.1 alla variabile %1 e C:\DOCUMENTI alla variabile %2.

------>5k1monH3rtz aS a H4X0R n' NoT a CrImInAl!!!!<------



2600-skimonhertz

 
PM Email  Top
0 replies since 2/11/2010, 23:25
 
Reply