Sei sulla pagina 1di 2

Struttura file:

@echo off Cicli con IF e GOTO:


rem (@echo off serve per set /p n=inserire un numero:
nascondere i comandi) set /a x=0

::codice :iniziofor
echo %x%
echo. set /a x=x+1
pause
if (%x% LEQ %n%) (goto iniziofor)
Input:
::output: 1 2 3 4 5 6 7 8 9 …
set /p x=digita qualcosa in
pause
input:
echo %x% (usa echo. per andare a capo)
Choice:
Operatori relazionali: choice.exe /c 1234 /n /m
"Inserisci scelta: "
EQU (oppure ==), NEQ, LSS, LEQ, GTR,
GEQ. if %errorlevel% == 4 goto fine
if %errorlevel% == 3 goto menu3
Operatori logici: if %errorlevel% == 2 goto menu2
AND, OR, NOT. if %errorlevel% == 1 goto menu1

Operatori di assegnamento (ricorda Comandi sui file:


“set /a” prima): Si usa > per creare un file da zero e/o
+=, -=, *=, /=, %=. pulire quello esistente
sovrascrivendolo, mentre >> per
Etichette e goto: creare il file e/o aggiungere del testo
set /p n=digita un numero: accanto a quello già esistente.
if %n% == 0 goto zero
if %n% LSS 0 goto negativo Esempio: programma che memorizzi
if %n% GTR 0 goto positivo nel file “maggiori.txt” solo i numeri
:zero maggiori di 20 dati in input.
echo numero uguale a zero @echo off
Si possono
goto fine
set /a cont = 0 concatenare più
variabili
:negativo
echo numero negativo :for
goto fine set /p n=inserire un numero:
if %n% GTR 20 (
:positivo echo %n% >> maggiori.txt
echo numero positivo )
goto fine set /a cont = cont+1
if %cont% LSS 10 goto for
:fine
pause pause
Valutare l’esistenza di un file: for /f "tokens=1,2 delims= " %%a
if not exist file.txt ( in (nomi-cognomi.txt) do (
goto fnuovo if %%b == %cognome% echo nome %%a
) else ( cognome %%b
goto fesiste )
)
::%%a corrisponde al token 1
:fnuovo
::… pause

:fesiste Ricerca (find):


::… Cerca in tutto il file una certa porzione
di testo. NUL cestina l’output.
Visualizzare un file: @echo off
type file.txt || esegue il secondo comando
quando il primo non ha
set /a t=0 successo (cioè errorlevel != 0)
Lettura da file (for /f):
set /p n=digita nominativo da
Esempio: programma che somma tutti cercare:
i numeri contenuti nel file “dati.txt”.
@echo off find "%n%" < dati.txt > NUL &&
set /a t=1 || echo nome non
set /a t=0 presente

for /f "tokens=1 delims= " %%a in if %t%==1 (


(dati.txt) do (set /a t=t+%%a) echo Il nominativo "%n%" cercato
è presente nel file
echo la somma totale è: %t% )

pause pause

Si possono usare anche più tokens, che Ordina (sort /r per reverse):
corrisponderanno ai parametri Ordina alfabeticamente e
“%%lettera” che avranno come nome numericamente (se sono presenti dei
le lettere in ordine alfabetico a-z. numeri) il file scelto e lo mette in un
nuovo file lasciando inalterato quello
Esempio: programma che cerca un originale.
cognome tra quelli contenuti nel file Esempio: ordina l’originale usando un
“nomi-cognomi.txt”. file d’appoggio “temp.txt”.
@echo off @echo off
sort dati.txt > temp.txt
set /a t=0 copy temp.txt dati.txt
del temp.txt
set /p cognome=Digita il cognome
da trovare: echo file ordinato:
type dati.txt
pause

FIND + SORT: find "%s%" < file1.txt | sort > file2.txt

Potrebbero piacerti anche