Uso dei comandi Batch



I comandi batch sono comandi che generalmente hanno senso solo quando usati in un programma, appunto, batch.

Con poche eccezzioni, Windows XP ha gli stessi comandi dei programmi batch di MS-DOS.
Iniziamo riassumendo tutti i comandi batch e poi passiamo ad esaminare alcuni programmi batch di Windows XP.

Spiegherò solo alcuni dei comandi, ma per la maggior parte, questi dovrebbero essere sufficienti.

Comandi Batch:

@ Impedisce che la riga venga visualizzata sullo schermo quando usato come primo carattere in una riga
Echo [off] [on] Attiva o disattiva la ripetizione dei comandi
Echo Messaggio Visualizza il Messaggio sullo schermo
Echo. Visualizza una riga vuota sullo schermo
Rem Messaggio Identifica Messaggio come un commento
If [Not] ErrorlevelNumero comando Esegue comando  se il valore di livello di errore restituito dal comando precedente è minore o uguale a numero (Not capovolge la logica)
If [Not] Exist nomefile comando Esegue comando se nomefile esiste (Not capovolge la logica)
If [Not] Stringa1 == Stringa2 comando Esegue comando se Stringa1 è uguale a Stringa2, comprese maiuscole e minuscole (Not capovolge la logica)
Goto Etichetta Trasferisce il controllo alla riga identificata da etichetta
: Etichetta Indica la riga da raggiungere con un comando Goto
For % %variabileIn (gruppo)
Do [comando]

% % variabile

Esegue un ciclo sugli elementi di gruppo, eseguendo comando per ogni ciclo e sostituendo qualsiasi occorrenza di variabile con l’elemento corrispondente da gruppo, che può essere un elenco separato da spazi o può contenere i caratteri jolly * e ?
Shift Sposta di una posizione i parametri della riga di comando in modo che %2 diventi %1, %7 diventi %6 e così via.
Call filebat argomenti Esegue filebat con argomenti e poi torna al programma batch chiamante.
Setlocal Localizza le variabili ambiente; le modifiche alle variabili sono note solo in questo programma batch finchè non viene eseguito il comando Endlocal
Endlocal Rende globali al sistema le variabili ambiente; le modifiche eseguite dopo Endlocal rimangono in vigore quando il programma batch termina.
Pushd percorso Salva la cartella corrente in uno stack e passa a percorso
Popd Passa all’ultima cartella salvata da Pushd e la rimuove dallo stack.
Pause Sospende l’elaborazione finchè non viene premuto un tasto
Title Assegna un titolo alla finestra Prompt dei comandi

Creazione di un semplice programma batch

Il passo più importante nella scrittura del programma batch, come per qualsiasi altro tipo di programma per pc, consiste nello specificare correttamente il problema da risolvere.

Nel mio programma di esempio, il problema è accedere a una connessione remota componendo ripetutamente il numero di connessioni diverse finchè non ne riesce una.
Se una connessione non riesce (ad esempio perchè la linea è occupata, o la password errata), il programma dovrebbe provare un’altra connessione remota.

In questo caso il programma si appoggia a Rasdial.exe, la versione della riga di comando del componente remoto usato, appunto, dalle connessioni remote.

Per creare un programma batch utilizzate un editor di testo normale, come notepad o wordpad, poi assicuratevi di salvarlo modificandone l’estensione in .bat oppure .cmd

inizio programma:

@echo off
rem Connects to a dial-up connection
title Connessioni Remote

:START
echo Connecting to Libero
rasdial Libero pct_hiker *
if not errorlevel 1 goto end

echo Connecting to Alice
rasdial Alice swdocs *
if not errorlevel 1 goto end

echo Connecting to Tiscali
rasdial Tiscali swdocs *
if errorlevel 1 goto start

:END
title Command Prompt

———

Ora salviamo il file come “dial.bat” in C:

Apriamo il prompt dei comandi da START–Esegui: “cmd”

e digitiamo “c:\dial” per eseguire il nostro programma batch.

Annunci sponsorizzati:

Ricerche effettuate:

  • comandi batch
Condividi su Facebook Condividi su Twitter!
  • Sempre molto utili i tuoi articoli, grazie!

  • emanuele

    … son cose che si sanno, ma è utile e bello trovare chi le riespone in modo chiaro e sintetico. Grazie!

    … e per comporre un numero di telefono che viene inserito come parametro al file .bat?

  • Marzaro.it

    mmm….non credo si possa fare…

    Per far comporre un numero ad un modem devi riuscire ad interfacciarti con i suoi driver.
    Rasdial in questo caso è un servizio che permette di sfruttare le connessioni remote impostate nel pc, quindi per fare quello che dici tu bisognerebbe studiarsi il funzionamento stesso di RasDial e replicarlo nel programma.

    Un programma con linguaggio Batch però non è assolutamente in grado di svolgere tale funzione.

    la soluzione più ovvia è di creare una connessione remota con il numero di telefono da comporre, e richiamare il nome della connessione nel programma di Batch. :)

  • C’è un sw che si chiama dialer che serve per fare telefonate dal pc usando il modem, lo conoscete?

  • Riccardo

    Salve,
    Avrei bisogno di aiuto….
    come posso rendere subito disponibile una variabile settatta tramite un programma eseguito dallo stesso batch senza essere costretto ad uscire per vederla valorizzata nello stesso task di cmd ????
    esempio se eseguo un batch cosi scritto :
    @echo off
    settavar.exe ( e’ il programma che mi setta la
    variabile %dati% )
    echo %dati% ( E’ vuota )
    pause
    per vederne il valore sono costretto a terminare il batch….
    solo allora il suo valore e’ acquisito !!!!
    come posso risolvere questo problema ????
    Vi ringrazio di cuore
    Riccardo

  • il comando che hai digitato non funziona ma ti chiede anke la password per cui devi dire hai tuoi visitatori che non va * alla fine

Pinterest