File batch: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Yujin (discussione | contributi)
Nessun oggetto della modifica
 
Esempi: più sensato
Etichette: Modifica da mobile Modifica da web per mobile
 
(162 versioni intermedie di oltre 100 utenti non mostrate)
Riga 1:
{{F|formati di file|dicembre 2012}}
{{stub}}
{{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 simili a [[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 da 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 CALL CHCP RENAME REN ERASE DEL TYPE REM COPY PAUSE DATE TIME VER VOL CD CHDIR MD MKDIR RD RMDIR BREAK VERIFY SET PROMPT PATH EXIT CTTY ECHO LOCK UNLOCK GOTO SHIFT IF FOR CLS TRUENAME LOADHIGH LH LFNFOR
I comandi interni sono sempre disponibili senza accedere al disco perché integrati all'interno dell'interprete dei comandi.
 
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