File batch: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Esempi: più sensato
Etichette: Modifica da mobile Modifica da web per mobile
 
(156 versioni intermedie di oltre 100 utenti non mostrate)
Riga 1:
{{F|formati di file|dicembre 2012}}
{{S|informatica}}
{{Formato file
Linguaggio di [[script]]ing per [[MS-DOS]], ormai in disuso per l'utilizzo delle [[GUI]] (Graphical User Interface).
| nome = File batch
I comandi di questo linguaggio possono essere usati da linea di comando oppure in un file di testo rinominato con estensione '''.bat'''.
| icona =
| logo =
| immagine =
| didascalia =
| estensione = .bat, .cmd
| mime =
| sviluppatore = [[Microsoft Corporation]]
| proprietario =
| licenza =
| data_pubblicazione =
| ultima_versione =
| data_ultima_versione =
| genere = [[Linguaggio di scripting]]
| estensione_di =
| esteso_a =
| standard =
| aperto =
| sito =
}}
 
In [[informatica]], e in particolare nella terminologia di [[MS-DOS|DOS]] e [[Microsoft Windows|Windows]], un '''file batch''' è un [[file di testo]] che contiene una sequenza di [[Riga di comando|comandi]] per l'[[Shell (informatica)|interprete di comandi]] del sistema, solitamente [[command.com]] o [[cmd.exe]].
Il file '''.bat''' più famoso è forse l' '''Autoexec.bat''' che gestiva l'ultima parte dell'avvio di sistemi operativi [[MS-DOS]] di quelli come [[Windows]] 95 e 98.
 
== Introduzione ==
I comandi più comuni sono:
Il file batch viene eseguito dall'interprete dei comandi mandando in [[esecuzione (informatica)|esecuzione]] i comandi elencati nel file uno dopo l'altro, nello stesso ordine in cui compaiono nel file. Il concetto di file batch è analogo a quello di [[Script|shell script]] per i sistemi [[Unix]] e infatti può essere considerato un rudimentale [[linguaggio di scripting]], anche se i costrutti di [[controllo di flusso]] a disposizione sono veramente pochi: <code>if</code>, <code>for</code> e <code>goto</code>.
'''''cd''''' (change directory) per cambiare cartella
'''''dir''''' per visualizzare il contenuto della cartella corrente
comando''''' /?''''' fornisce informazioni sul comando
 
I comandi batch di [[MS-DOS]] devono avere [[Estensione (file)|estensione]] .bat per essere riconosciuti come tali dal [[sistema operativo]], mentre i sistemi NT (Windows NT/2000/XP/Vista/7 e successivi) accettano anche l'estensione .cmd.
e si trovano all'interno del file command.com
 
Un particolare e noto file batch è [[AUTOEXEC.BAT]] perché viene eseguito automaticamente all'[[boot|avvio]] di tutti i sistemi operativi basati su MS-DOS.
Altri file di estensione exe, com o bat (detti comandi esterni) possono essere usati come comandi e chiamati senza bisogno di scrivere l'estensione, scrivere diskcopy o diskcopy.com dà lo stesso risultato, esiste comunque una precedenza nel caso che files con diverse estensioni abbiano lo stesso nome.
 
I comandi utilizzabili sono tutti quelli disponibili per il [[prompt]] di sistema e si dividono in due categorie:
== Alcuni Comandi per Windows 98 ==
* ''comandi interni'', come <code>cd</code> per cambiare la [[directory|cartella]] di lavoro o <code>dir</code> per elencarne il contenuto. Alcuni di essi sono specifici proprio per i file batch, avendo ben poco o nessun senso se utilizzati direttamente dal prompt dei comandi per un singolo comando.
* ''comandi esterni'', come <code>format</code> o <code>chkdsk</code>.
 
=== Comandi interni ===
DIR<BR />
I comandi interni sono sempre disponibili senza accedere al disco perché integrati all'interno dell'interprete dei comandi.
CALL <BR />
CHCP <BR />
RENAME <BR />
REN <BR />
ERASE <BR />
DEL <BR />
TYPE <BR />
REM <BR />
COPY <BR />
PAUSE <BR />
DATE <BR />
TIME <BR />
VER <BR />
VOL <BR />
CD <BR />
CHDIR <BR />
MD <BR />
MKDIR <BR />
RD <BR />
RMDIR <BR />
BREAK <BR />
VERIFY <BR />
SET <BR />
PROMPT <BR />
PATH <BR />
EXIT <BR />
CTTY <BR />
ECHO <BR />
LOCK <BR />
UNLOCK <BR />
GOTO <BR />
SHIFT <BR />
IF <BR />
FOR <BR />
CLS <BR />
TRUENAME <BR />
LOADHIGH LH <BR />
LFNFOR<BR />
 
Ecco alcuni comandi interni:
== Alcuni Comandi Esterni per Windows 98 ==
* <code>dir</code>
* <code>call</code>
* <code>chcp</code>
* <code>ren</code> o <code>rename</code>
* <code>del</code> o <code>erase</code>
* <code>type</code>
* <code>rem</code>
* <code>copy</code>
* <code>pause</code>
* <code>date</code>
* <code>time</code>
* <code>ver</code>
* <code>vol</code>
* <code>cd</code> o <code>chdir</code>
* <code>md</code> o <code>mkdir</code>
* <code>rd</code> o <code>rmdir</code>
* <code>break</code>
* <code>verify</code>
* <code>set</code>
* <code>prompt</code>
* <code>path</code>
* <code>exit</code>
* <code>echo</code>
* <code>goto</code>
* <code>shift</code>
* <code>if</code>
* <code>for</code>
* <code>cls</code>
* <code>lh</code> o <code>loadhigh</code>
 
Alcuni comandi interni introdotti con [[Windows 95]]:
DISKCOPY.COM EDIT.COM KEYB.COM MODE.COM MORE.COM SYS.COM ATTRIB.EXE CHKDSK.EXE DEBUG.EXE DELTREE.EXE FC.EXE FIND.EXE LABEL.EXE MEM.EXE MOVE.EXE NLSFUNC.EXE SORT.EXE SUBST.EXE XCOPY.EXE XCOPY32.EXE
* <code>start</code>
* <code>lfnfor</code>
* <code>truename</code>
* <code>lock</code>
* <code>unlock</code>
 
=== Comandi esterni ===
 
I comandi esterni sono file di estensione [[Eseguibile EXE|.exe]], [[Eseguibile COM|.com]] o gli stessi file con estensione .bat o .cmd, che possono essere usati come comandi e chiamati (senza bisogno di scrivere l'estensione: scrivere diskcopy o diskcopy.com dà lo stesso risultato; esiste comunque una precedenza nel caso di file con nomi uguali ma estensioni diverse).
 
Ecco alcuni comandi esterni:
* <code>robocopy.exe</code>
* <code>diskcopy.com</code>
* <code>edit.com</code>
* <code>mode.com</code>
* <code>more.com</code>
* <code>sys.com</code>
* <code>attrib.exe</code>
* <code>chkdsk.exe</code>
* <code>debug.exe</code>
* <code>deltree.exe</code>
* <code>fc.exe</code>
* <code>find.exe</code>
* <code>label.exe</code>
* <code>mem.exe</code>
* <code>move.exe</code>
* <code>net.exe</code>
* <code>nlsfunc.exe</code>
* <code>shutdown.exe</code>
* <code>sort.exe</code>
* <code>subst.exe</code>
* <code>xcopy.exe</code>
* <code>xcopy32.exe</code>
 
Per avere informazioni su questi comandi, digitare da [[cmd.exe]] il comando stesso seguito da ''/?'', per esempio: <code>xcopy /?</code>
 
== Esempi ==
* [[Hello World!world]]: - Stampastampa a monitorvideo ladella scritta "Hello Worldworld!" ed esce
<syntaxhighlight lang="dos">
@echo Hello World!
@echo Hello world!
pause
</syntaxhighlight>
* Effetto Matrix
<syntaxhighlight lang="dos">
@echo off
color 02
:SCROLLR
echo %random% %random% %random% %random%
goto SCROLLR
</syntaxhighlight>
 
* spegnimento computer dopo 30 secondi
<syntaxhighlight lang="dos">
shutdown -s
</syntaxhighlight>
* Creazione di un menù
<syntaxhighlight lang="dos">
@echo off
title Opinione su Wikipedia
cls
color 9E
 
:RICHIESTA
echo.
echo Che cosa pensi di Wikipedia?
echo 1. Grandiosa.
echo 2. Così così.
echo 3. Esci
echo.
set /p "Scelta=Scegli un'opzione e premi il tasto Invio: "
cls
IF "%Scelta%"=="1" GOTO UNO
IF "%Scelta%"=="2" GOTO DUE
IF "%Scelta%"=="3" GOTO TRE
color CF
echo.
echo Scelta non valida: premi un tasto compreso tra 1 e 3.
echo.
echo Premi un tasto per continuare...
pause > nul
cls
color 9E
goto RICHIESTA
 
:UNO
echo.
echo Anche per me!
goto TRE
 
:DUE
echo.
echo Prova a dare un'occhiata ai progetti analoghi a questo indirizzo:
echo http://it.wikipedia.org/wiki/Wikimedia_Foundation#Progetti
echo.
echo Premi un tasto per aprire Wikipedia...
pause > nul
cls
echo.
echo Apertura di Wikipedia in corso...
start http://it.wikipedia.org/wiki/Wikimedia_Foundation#Progetti
cls
 
:TRE
echo.
echo Ciao.
echo.
echo Premi un tasto per uscire...
pause > nul
exit /b
</syntaxhighlight>
 
== Voci correlate ==
* [[Comandi di MS-DOS]]
* [[Batch processing]]
 
== Collegamenti esterni ==
* {{FOLDOC|batch file|batch file}}
* {{cita web|lingua=en|url=https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490869(v%3dtechnet.10)|titolo=Using batch files|editore=[[Microsoft]]|data=11 settembre 2009}}
 
{{portale|informatica|microsoft}}
 
[[Categoria:Formati di file eseguibili]]
Creazione di un menù
[[Categoria:Linguaggi di scripting]]
@echo off
[[Categoria:Terminologia informatica]]
cls
:RICHIESTE
echo.
echo Cosa pensi di Wikipedia?
echo (1) Grandiosa!
echo (2) Così così...
echo.
choice /c:12 Seleziona una risposta...
if errorlevel 2 goto DUE
if errorlevel 1 goto UNO
if not errorlevel 0 goto END
:UNO
echo Anche io!
pause
goto END
:DUE
echo Prova a dare un'occhiata ai progetti analoghi su
echo http://it.wikipedia.org/wiki/Pagina_principale#Oltre_Wikipedia
pause
goto END
:END
echo.
echo Ciao ciao
echo.
pause
cls
@echo on