Script Batch - Input / Output

Ciao a tutti, futuri programmatori! Oggi ci immergeremo nel mondo affascinante degli script Batch, concentrandoci sulle operazioni di input e output. Come il vostro amico di quartiere insegnante di informatica, sono entusiasta di guidarvi in questo viaggio. Non preoccupatevi se non avete mai scritto una riga di codice prima - inizieremo dalle basi e lavoreremo per gradi. Allora, prendete una tazza della vostra bevanda preferita e iniziamo!

Batch Script - Input / Output

Comprensione dell'Input e dell'Output negli Script Batch

Prima di addentrarci nei dettagli, parliamo di cosa significhino input e output nel contesto degli script Batch.

  • Input è l'informazione che entra nel vostro script. È come fornire dati al vostro programma.
  • Output è ciò che il vostro script produce o visualizza. È il risultato del lavoro del vostro script.

Pensateci come in una cucina: l'input sono gli ingredienti che utilizzate, e l'output è il delizioso pasto che create!

Input di Base: Il Comando SET /P

Iniziamo con il modo più comune per ottenere input negli script Batch: il comando SET /P. Questo comando ci permette di solicitare input dall'utente e memorizzarlo in una variabile.

@echo off
SET /P nome=Qual è il tuo nome?
echo Ciao, %nome%! Benvenuto nel mondo degli script Batch!
pause

In questo esempio:

  1. @echo off impedisce che i comandi vengano visualizzati sullo schermo.
  2. SET /P nome=Qual è il tuo nome? sollecita l'utente a inserire il proprio nome e lo memorizza nella variabile nome.
  3. echo Ciao, %nome%! visualizza un saluto utilizzando il nome inserito.
  4. pause tiene la finestra aperta così che possiate vedere il risultato.

Provate a eseguire questo script. È come avere una piccola conversazione con il vostro computer!

Output di Base: Il Comando ECHO

Abbiamo già visto il comando ECHO in azione. È il modo principale per visualizzare l'output negli script Batch. Esploriamolo un po' di più:

@echo off
echo Questo è un output semplice.
echo.
echo Questa riga ha una riga vuota sopra.
echo "Le virgolette" vengono visualizzate come sono.
echo.
echo Data corrente: %date%
echo Ora corrente: %time%
pause

Ecco cosa sta succedendo:

  • echo. stampa una riga vuota.
  • Possiamo utilizzare ECHO per visualizzare testo, variabili e persino informazioni di sistema come data e ora.

Reindirizzamento dell'Output (Stdout e Stderr)

Ora parliamo di reindirizzare l'output. Negli script Batch abbiamo due tipi principali di output:

  1. Standard Output (stdout): L'output normale di un comando.
  2. Standard Error (stderr): Messaggi di errore o output diagnostico.

Possiamo reindirizzare questi output a file utilizzando gli operatori > e >>.

Reindirizzamento dell'Output Standard

@echo off
echo Questo verrà salvato in un file > output.txt
echo Questo verrà aggiunto al file >> output.txt
type output.txt
pause

In questo script:

  • > crea (o sovrascrive) un file e scrive l'output in esso.
  • >> aggiunge l'output a un file esistente (o lo crea se non esiste).
  • type output.txt visualizza il contenuto del file.

Reindirizzamento dell'Output Standard di Errore

Per reindirizzare i messaggi di errore, utilizziamo 2> invece di solo >.

@echo off
dir cartella_inesistente 2> error.txt
type error.txt
pause

Questo script tenta di elencare una cartella inesistente e reindirizza il messaggio di errore a un file.

Reindirizzamento di Both Stdout e Stderr

Possiamo reindirizzare entrambi i tipi di output allo stesso file:

@echo off
dir 2>&1 > output.txt
type output.txt
pause

Qui, 2>&1 significa "reindirizzare stderr nello stesso posto di stdout".

Suppressione dell'Output del Programma

A volte, potreste voler eseguire un comando senza visualizzare il suo output. Possiamo fare questo reindirizzando l'output a un dispositivo speciale chiamato NUL.

@echo off
echo Questo verrà visualizzato
echo Questo non verrà visualizzato > NUL
dir > NUL
echo L'elenco dei directory è stato soppresso
pause

In questo script, l'output del secondo comando ECHO e del comando DIR viene soppresso.

Tecniche Avanzate di Input/Output

Ora che abbiamo coperto le basi, esploriamo alcune tecniche più avanzate.

Utilizzo di CHOICE per l'Input dell'Utente

Il comando CHOICE fornisce un modo più strutturato per ottenere input dall'utente:

@echo off
echo Ti piace programmare?
choice /c YN /m "Inserisci Y per Sì o N per No"
if errorlevel 2 goto No
if errorlevel 1 goto Si
:Si
echo Ottimo! Impariamo di più!
goto Fine
:No
echo Non preoccuparti, lo amerai presto!
:Fine
pause

Questo script:

  1. Presenta una domanda Sì/No all'utente.
  2. Utilizza /c YN per specificare le scelte valide (Y o N).
  3. Utilizza /m per visualizzare un messaggio personalizzato.
  4. Utilizza if errorlevel per controllare la scelta dell'utente e saltare all'etichetta appropriata.

Lettura da un File

Possiamo anche leggere input da un file:

@echo off
for /f "delims=" %%a in (input.txt) do (
echo Linea letta: %%a
)
pause

Questo script legge ogni riga da input.txt e la visualizza.

Scrittura su Multiplici Files

Creiamo uno script che scrive su più file:

@echo off
echo Contenuto File 1 > file1.txt
echo Contenuto File 2 > file2.txt
echo Contenuto File 3 > file3.txt
echo Files creati con successo!
pause

Questo crea tre file separati con contenuti diversi.

Riepilogo dei Metodi di Input/Output

Riassumiamo i metodi di input/output che abbiamo imparato in una comoda tabella:

Metodo Descrizione Esempio
SET /P Ottenere input dall'utente SET /P nome=Inserisci nome:
ECHO Visualizzare output echo Ciao, Mondo!
> Reindirizzare output a file echo Testo > file.txt
>> Aggiungere output a file echo Altri testi >> file.txt
2> Reindirizzare output di errore comando 2> error.txt
2>&1 Reindirizzare both stdout e stderr comando > output.txt 2>&1
NUL Sopprimere output comando > NUL
CHOICE Input strutturato dell'utente choice /c YN /m "Sì o No?"
FOR /F Leggere da file for /f "delims=" %%a in (file.txt) do ...

Ecco fatto, gente! Abbiamo viaggiato attraverso il paese degli script Batch per input e output. Ricordate, la chiave per padroneggiare questi concetti è la pratica. Provate a scrivere i vostri script, esperimentate con diversi comandi e non abbiate paura di fare errori - è così che impariamo!

Come dice sempre il vostro vecchio insegnante di informatica, "In programmazione, ogni errore è solo una nuova opportunità di apprendimento indisguagliata." Quindi, andate avanti, scrivete i vostri script Batch, e possa il vostro output essere sempre come previsto!

Credits: Image by storyset