Rubrica.bat
Semplice esercizio sulla shell di windows che contempla comandi base e di facile utilizzo.
TRACCIA
Crea un file batch denominato “rubrica.bat” che permetta di gestire un elenco di contatti di persone all’interno di una rubrica. La rubrica dovrà essere costituita da un file di testo con i seguenti campi, per ciascun nominativo:
cognome nome indirizzo città telefono
Il file batch dovrà visualizzare il seguente menu, dove a seconda della scelta effettuata dell’utente dovrà corrispondere una particolare azione, così come specificato:
Aggiungi contatto
- Visualizza rubrica
- Cerca in rubrica
- Ordina contatti
- Elimina contatto
- Svuota rubrica
- Effettua copia di backup della rubrica
- Ripristina rubrica da backup
- Esci
Realizzare il file batch e scrivere una relazione che documenti nel dettaglio le scelte implementative e descriva il significato dei comandi utilizzati.
COMANDI/CODICI
@echo off
setlocal enabledelayedexpansion
setlocal
chcp 65001
set righe=0
set count=0
set count2=0
set tempo=0
set scelta=0
set backupDir=0
set nome_rubrica=0
set cognome_rubrica=0
set indirizzo_rubrica=0
set citta_rubrica=0
set telefono_rubrica=0
set controllo=0
set nome_da_cercare=0
if NOT exist rubrica (
md rubrica\backup
md rubrica\elenco\categorie\citta
md rubrica\elenco\categorie\cognome
md rubrica\elenco\categorie\indirizzo
md rubrica\elenco\categorie\nome
md rubrica\elenco\categorie\telefono
md rubrica\elenco\cestino\categorie\citta
md rubrica\elenco\cestino\categorie\cognome
md rubrica\elenco\cestino\categorie\indirizzo
md rubrica\elenco\cestino\categorie\nome
md rubrica\elenco\cestino\categorie\telefono
md rubrica\elenco\cestino\unico
md rubrica\elenco\unico
md rubrica\interfaccia
type nul > rubrica\elenco\categorie\citta\citta_salvato.txt
type nul > rubrica\elenco\categorie\citta\citta.txt
type nul > rubrica\elenco\categorie\cognome\cognome_salvato.txt
type nul > rubrica\elenco\categorie\cognome\cognome.txt
type nul > rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt
type nul > rubrica\elenco\categorie\indirizzo\indirizzo.txt
type nul > rubrica\elenco\categorie\nome\nome_salvato.txt
type nul > rubrica\elenco\categorie\nome\nome.txt
type nul > rubrica\elenco\categorie\telefono\telefono_salvato.txt
type nul > rubrica\elenco\categorie\telefono\telefono.txt
type nul > rubrica\elenco\cestino\categorie\citta\citta_salvato.txt
type nul > rubrica\elenco\cestino\categorie\citta\citta.txt
type nul > rubrica\elenco\cestino\categorie\cognome\cognome_salvato.txt
type nul > rubrica\elenco\cestino\categorie\cognome\cognome.txt
type nul > rubrica\elenco\cestino\categorie\indirizzo\indirizzo_salvato.txt
type nul > rubrica\elenco\cestino\categorie\indirizzo\indirizzo.txt
type nul > rubrica\elenco\cestino\categorie\nome\nome_salvato.txt
type nul > rubrica\elenco\cestino\categorie\nome\nome.txt
type nul > rubrica\elenco\cestino\categorie\telefono\telefono_salvato.txt
type nul > rubrica\elenco\cestino\categorie\telefono\telefono.txt
type nul > rubrica\elenco\cestino\unico\rubrica_nomi_salvati.txt
type nul > rubrica\elenco\cestino\unico\rubrica.txt
type nul > rubrica\elenco\unico\rubrica_cerca.txt
type nul > rubrica\elenco\unico\rubrica.txt
type nul > rubrica\elenco\unico\rubrica_nomi_salvati.txt
type nul > rubrica\elenco\unico\rubrica_ordinata.txt
echo | set /p=. Nome │ Cognome │ Indirizzo │ Città │ Telefono>> rubrica\interfaccia\header_elenco.txt
echo 1. Ripristina da backup >> rubrica\interfaccia\menu_backup.txt
echo 2. Effettua backup >> rubrica\interfaccia\menu_backup.txt
echo 3. Elimina backup >> rubrica\interfaccia\menu_backup.txt
echo 4. Indietro >> rubrica\interfaccia\menu_backup.txt
echo 1. Cerca un altra parola chiave >> rubrica\interfaccia\menu_cerca.txt
echo 2. Indietro >> rubrica\interfaccia\menu_cerca.txt
echo 1. Visualizza Cestino >> rubrica\interfaccia\menu_cestino.txt
echo 2. Riprista contatto >> rubrica\interfaccia\menu_cestino.txt
echo 3. Svuota cestino >> rubrica\interfaccia\menu_cestino.txt
echo 4. indietro >> rubrica\interfaccia\menu_cestino.txt
echo 1. Sposta nel cestino con numero riga >> rubrica\interfaccia\menu_elimina.txt
echo 2. Sposta nel cestino con Nome e Cognome >> rubrica\interfaccia\menu_elimina.txt
echo 3. Cestino >> rubrica\interfaccia\menu_elimina.txt
echo 4. Indietro >> rubrica\interfaccia\menu_elimina.txt
echo 1. Visualizza contatti >> rubrica\interfaccia\menu_principale.txt
echo 2. Aggiungi contatto >> rubrica\interfaccia\menu_principale.txt
echo 3. Cerca >> rubrica\interfaccia\menu_principale.txt
echo 4. Elimina contatto >> rubrica\interfaccia\menu_principale.txt
echo 5. Elimina Rubrica >> rubrica\interfaccia\menu_principale.txt
echo 6. Backup >> rubrica\interfaccia\menu_principale.txt
echo 7. Esci >> rubrica\interfaccia\menu_principale.txt
echo Ordina per >> rubrica\interfaccia\menu_visualizza.txt
echo 1. Nome A → Z >> rubrica\interfaccia\menu_visualizza.txt
echo 2. Nome Z ← A >> rubrica\interfaccia\menu_visualizza.txt
echo 3. Cognome A → Z >> rubrica\interfaccia\menu_visualizza.txt
echo 4. Cognome Z ← A >> rubrica\interfaccia\menu_visualizza.txt
echo 5. Indirizzo A → Z >> rubrica\interfaccia\menu_visualizza.txt
echo 6. Indirizzo Z ← A >> rubrica\interfaccia\menu_visualizza.txt
echo 7. Città A → Z >> rubrica\interfaccia\menu_visualizza.txt
echo 8. Città Z ← A >> rubrica\interfaccia\menu_visualizza.txt
echo 9. Indietro >> rubrica\interfaccia\menu_visualizza.txt
type nul >> rubrica\interfaccia\nome_backup.txt
echo|set /p="│">>rubrica\interfaccia\simbolo_pipe.txt
for /f %%A in ('copy /Z "%~dpf0" nul') do set EOL=%%A^
<nul set /p "=x!EOL! " >temp.tmp
findstr /v $ temp.tmp >rubrica\interfaccia\spazio_vuoto.txt
del temp.tmp
)
::---------------------------------------------------------------------------------------------------------
:menu_principale
type rubrica\elenco\unico\rubrica.txt > rubrica\elenco\unico\rubrica_ordinata.txt
cls
type rubrica\interfaccia\menu_principale.txt
echo,
CHOICE /N /C:1234567 /M "Inserisci una scelta"
if %ERRORLEVEL%==1 goto visualizza_contatti
if %ERRORLEVEL%==2 goto aggiungi_contatto
if %ERRORLEVEL%==3 goto cerca
if %ERRORLEVEL%==4 goto elimina_contatto
if %ERRORLEVEL%==5 goto elimina_rubrica
if %ERRORLEVEL%==6 goto backup
if %ERRORLEVEL%==7 goto esci
::---------------------------------------------------------------------------------------------------------
:visualizza_contatti
set /a count=0
for /f %%i in (rubrica\elenco\unico\rubrica.txt) do (
set /a count=count+1
)
if %count% EQU 0 (
for /l %%i in (3,-1,1) do (
cls
echo Nessun Nome in rubrica attendi [%%i] secondi
timeout 1 > nul
)
goto menu_principale
)
cls
type rubrica\interfaccia\header_elenco.txt
echo,
type rubrica\elenco\unico\rubrica_ordinata.txt
echo,
type rubrica\interfaccia\menu_visualizza.txt
echo,
CHOICE /N /C:123456789 /M "Inserisci una scelta"
if %ERRORLEVEL%==1 goto ordina_per_nome
if %ERRORLEVEL%==2 goto ordina_per_nome_revers
if %ERRORLEVEL%==3 goto ordina_per_cognome
if %ERRORLEVEL%==4 goto ordina_per_cognome_revers
if %ERRORLEVEL%==5 goto ordina_per_indirizzo
if %ERRORLEVEL%==6 goto ordina_per_indirizzo_revers
if %ERRORLEVEL%==7 goto ordina_per_citta
if %ERRORLEVEL%==8 goto ordina_per_citta_revers
if %ERRORLEVEL%==9 goto indietro_menu_visualizza
::---------------------------------------------------------------------------------------------------------
:ordina_per_nome
sort < rubrica\elenco\unico\rubrica.txt > rubrica\elenco\unico\rubrica_ordinata.txt
goto visualizza_contatti
::---------------------------------------------------------------------------------------------------------
:ordina_per_nome_revers
sort /r < rubrica\elenco\unico\rubrica.txt > rubrica\elenco\unico\rubrica_ordinata.txt
goto visualizza_contatti
::---------------------------------------------------------------------------------------------------------
:ordina_per_cognome
sort /+23 < rubrica\elenco\unico\rubrica.txt > rubrica\elenco\unico\rubrica_ordinata.txt
goto visualizza_contatti
::---------------------------------------------------------------------------------------------------------
:ordina_per_cognome_revers
sort /+23 /r < rubrica\elenco\unico\rubrica.txt > rubrica\elenco\unico\rubrica_ordinata.txt
goto visualizza_contatti
::---------------------------------------------------------------------------------------------------------
:ordina_per_indirizzo
sort /+44 < rubrica\elenco\unico\rubrica.txt > rubrica\elenco\unico\rubrica_ordinata.txt
goto visualizza_contatti
::---------------------------------------------------------------------------------------------------------
:ordina_per_indirizzo_revers
sort /+44 /r < rubrica\elenco\unico\rubrica.txt > rubrica\elenco\unico\rubrica_ordinata.txt
goto visualizza_contatti
::---------------------------------------------------------------------------------------------------------
:ordina_per_citta
sort /+65 < rubrica\elenco\unico\rubrica.txt > rubrica\elenco\unico\rubrica_ordinata.txt
goto visualizza_contatti
::---------------------------------------------------------------------------------------------------------
:ordina_per_citta_revers
sort /+65 /r < rubrica\elenco\unico\rubrica.txt > rubrica\elenco\unico\rubrica_ordinata.txt
goto visualizza_contatti
::---------------------------------------------------------------------------------------------------------
:indietro_menu_visualizza
goto menu_principale
::---------------------------------------------------------------------------------------------------------
:aggiungi_contatto
cls
:ritorno_nome_rubrica
cls
set nome_rubrica=aaaaaaaaaaaaaaaaaaaaaa
set /p nome_rubrica=Nome del contatto:
call :strlen result nome_rubrica
if %result% GEQ 20 goto ritorno_nome_rubrica
if %result% LSS 1 goto ritorno_nome_rubrica
call :strlen result nome_rubrica
set /a tempo=18-result
echo | set /p=%nome_rubrica% >> rubrica\elenco\categorie\nome\nome.txt
echo | set /p=%nome_rubrica% >> rubrica\elenco\unico\rubrica.txt
for /l %%i in (0,+1,%tempo%) do (
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\categorie\nome\nome.txt
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\unico\rubrica.txt
)
type rubrica\interfaccia\simbolo_pipe.txt >> rubrica\elenco\categorie\nome\nome.txt
type rubrica\interfaccia\simbolo_pipe.txt >> rubrica\elenco\unico\rubrica.txt
type rubrica\elenco\categorie\nome\nome.txt | echo;>> rubrica\elenco\categorie\nome\nome.txt
::---------------------------------------------------------------------------------------------------------
:ritorno_cognome_rubrica
cls
set cognome_rubrica=aaaaaaaaaaaaaaaaaaaaaa
set /p cognome_rubrica=Cognome del contatto %nome_rubrica%:
call :strlen result cognome_rubrica
if %result% GEQ 20 goto ritorno_cognome_rubrica
if %result% LSS 1 goto ritorno_cognome_rubrica
call :strlen result cognome_rubrica
set /a tempo=18-result
echo | set /p=%cognome_rubrica% >> rubrica\elenco\categorie\cognome\cognome.txt
echo | set /p=%cognome_rubrica% >> rubrica\elenco\unico\rubrica.txt
for /l %%i in (0,+1,%tempo%) do (
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\categorie\cognome\cognome.txt
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\unico\rubrica.txt
)
type rubrica\interfaccia\simbolo_pipe.txt >> rubrica\elenco\categorie\cognome\cognome.txt
type rubrica\interfaccia\simbolo_pipe.txt >> rubrica\elenco\unico\rubrica.txt
type rubrica\elenco\categorie\cognome\cognome.txt | echo;>> rubrica\elenco\categorie\cognome\cognome.txt
::---------------------------------------------------------------------------------------------------------
:ritorno_indirizzo_rubrica
cls
set indirizzo_rubrica=aaaaaaaaaaaaaaaaaaaaaa
set /p indirizzo_rubrica=Indirizzo del contatto %nome_rubrica% %cognome_rubrica%:
call :strlen result indirizzo_rubrica
if %result% GEQ 20 goto ritorno_indirizzo_rubrica
if %result% LSS 1 goto ritorno_indirizzo_rubrica
call :strlen result indirizzo_rubrica
set /a tempo=18-result
echo | set /p=%indirizzo_rubrica% >> rubrica\elenco\categorie\indirizzo\indirizzo.txt
echo | set /p=%indirizzo_rubrica% >> rubrica\elenco\unico\rubrica.txt
for /l %%i in (0,+1,%tempo%) do (
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\categorie\indirizzo\indirizzo.txt
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\unico\rubrica.txt
)
type rubrica\interfaccia\simbolo_pipe.txt >> rubrica\elenco\categorie\indirizzo\indirizzo.txt
type rubrica\interfaccia\simbolo_pipe.txt >> rubrica\elenco\unico\rubrica.txt
type rubrica\elenco\categorie\indirizzo\indirizzo.txt | echo;>> rubrica\elenco\categorie\indirizzo\indirizzo.txt
::---------------------------------------------------------------------------------------------------------
:ritorno_citta_rubrica
cls
set citta_rubrica=aaaaaaaaaaaaaaaaaaaaaa
set /p citta_rubrica=Citta' del contatto %nome_rubrica% %cognome_rubrica%:
call :strlen result citta_rubrica
if %result% GEQ 20 goto ritorno_citta_rubrica
if %result% LSS 1 goto ritorno_citta_rubrica
call :strlen result citta_rubrica
set /a tempo=18-result
echo | set /p=%citta_rubrica% >> rubrica\elenco\categorie\citta\citta.txt
echo | set /p=%citta_rubrica% >> rubrica\elenco\unico\rubrica.txt
for /l %%i in (0,+1,%tempo%) do (
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\categorie\citta\citta.txt
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\unico\rubrica.txt
)
type rubrica\interfaccia\simbolo_pipe.txt >> rubrica\elenco\categorie\citta\citta.txt
type rubrica\interfaccia\simbolo_pipe.txt >> rubrica\elenco\unico\rubrica.txt
type rubrica\elenco\categorie\citta\citta.txt | echo; >> rubrica\elenco\categorie\citta\citta.txt
::---------------------------------------------------------------------------------------------------------
:controllo_telefono_rubrica
:ritorno_telefono_rubrica
cls
set telefono_rubrica=aaaaaaaaaaaaaaaaaaaaaa
set /p telefono_rubrica=Telefono del contatto %nome_rubrica% %cognome_rubrica%:
call :strlen result telefono_rubrica
if %result% GEQ 20 goto ritorno_telefono_rubrica
if %result% LSS 1 goto ritorno_telefono_rubrica
set /a controllo=telefono_rubrica
if !controllo! EQU 0 (
if !telefono_rubrica! EQU 0 (
call :strlen result citta_rubrica
set /a tempo=18-result
echo | set /p=%telefono_rubrica% >> rubrica\elenco\categorie\telefono\telefono.txt
echo | set /p=%telefono_rubrica% >> rubrica\elenco\unico\rubrica.txt
for /l %%i in (0,+1,%tempo%) do (
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\categorie\telefono\telefono.txt
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\unico\rubrica.txt
)
type rubrica\elenco\categorie\telefono\telefono.txt | echo;>> rubrica\elenco\categorie\telefono\telefono.txt
) else (
for /l %%i in (3,-1,1) do (
echo Potrai reinserire l'input fra [%%i] secondi
timeout 1 > nul
)
goto controllo_telefono_rubrica
)
) else (
call :strlen result telefono_rubrica
set /a tempo=18-result
echo | set /p=%telefono_rubrica% >> rubrica\elenco\categorie\telefono\telefono.txt
echo | set /p=%telefono_rubrica% >> rubrica\elenco\unico\rubrica.txt
for /l %%i in (0,+1,%tempo%) do (
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\categorie\telefono\telefono.txt
type rubrica\interfaccia\spazio_vuoto.txt >> rubrica\elenco\unico\rubrica.txt
)
type rubrica\elenco\categorie\telefono\telefono.txt | echo; >> rubrica\elenco\categorie\telefono\telefono.txt
type rubrica\elenco\unico\rubrica.txt | echo; >> rubrica\elenco\unico\rubrica.txt
)
for /l %%i in (3,-1,1) do (
cls
echo Salvaggio effettuato con successo [%%i] secondi
timeout 1 > nul
)
goto menu_principale
::---------------------------------------------------------------------------------------------------------
:cerca
set /a count=0
for /f %%i in (rubrica\elenco\unico\rubrica.txt) do (
set /a count=count+1
)
if %count% EQU 0 (
for /l %%i in (3,-1,1) do (
cls
echo Nessun Nome in rubrica attendi [%%i] secondi
timeout 1 > nul
)
goto menu_principale
)
set /a count=0
for /f %%i in (rubrica\elenco\unico\rubrica.txt) do (
set /a count=count+1
)
if %count% EQU 0 (
for /l %%i in (3,-1,1) do (
cls
echo Nessun Nome in rubrica attendi [%%i] secondi
timeout 1 > nul
)
goto menu_principale
)
cls
type rubrica\interfaccia\header_elenco.txt
echo;
type rubrica\elenco\unico\rubrica.txt
set /a nome_da_cercare=0
set /p nome_da_cercare=Inserisci cosa cercare:
find /i "%nome_da_cercare%" rubrica\elenco\unico\rubrica.txt > rubrica\elenco\unico\rubrica_cerca.txt
cls
type rubrica\interfaccia\header_elenco.txt
echo;
for /f "skip=2 tokens=*" %%i in (rubrica\elenco\unico\rubrica_cerca.txt) do (
echo %%i
)
type rubrica\interfaccia\menu_cerca.txt
echo;
CHOICE /N /C:12 /M "Inserisci una scelta"
if %ERRORLEVEL%==1 goto cerca
if %ERRORLEVEL%==2 goto menu_principale
PAUSE
goto menu_principale
::---------------------------------------------------------------------------------------------------------
:elimina_contatto
cls
type rubrica\interfaccia\menu_elimina.txt
echo;
CHOICE /N /C:1234 /M "Inserisci una scelta"
if %ERRORLEVEL%==1 goto elimina_riga
if %ERRORLEVEL%==2 goto elimina_da_nome_e_cognome
if %ERRORLEVEL%==3 goto cestino
if %ERRORLEVEL%==4 goto menu_principale
::---------------------------------------------------------------------------------------------------------
:elimina_riga
set /a count=0
for /f %%i in (rubrica\elenco\unico\rubrica.txt) do (
set /a count=count+1
)
if %count% EQU 0 (
for /l %%i in (3,-1,1) do (
cls
echo Nessun Nome in rubrica attendi [%%i] secondi
timeout 1 > nul
)
goto elimina_contatto
)
set /a count2=count
cls
if %count2% GTR 9 (
type rubrica\interfaccia\spazio_vuoto.txt
) else (
if %count2% GTR 99 (
type rubrica\interfaccia\spazio_vuoto.txt type rubrica\interfaccia\spazio_vuoto.txt
) else (
if %count2% GTR 999 (
type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt
) else (
if %count2% GTR 9999 type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt
)
)
)
echo | set /p=N
type rubrica\interfaccia\spazio_vuoto.txt
type rubrica\interfaccia\header_elenco.txt
echo;
set /a count=0
for /f "tokens=*" %%i in (rubrica\elenco\unico\rubrica.txt) do (
set /a count=!count! + 1
if %count2% GTR 9 (
if not !count! GTR 9 type rubrica\interfaccia\spazio_vuoto.txt
) else (
if %count2% GTR 99 (
if not !count! GTR 99 type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt
) else (
if %count2% GTR 999 ( if !count! GTR 999 type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt
) else (
if not %count2% GTR 9999 if !count! GTR 9999 type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt
)
)
)
echo !count! %%i
)
set /a scelta=0
set /p scelta=Inserisci la riga corrispondente:
call :strlen result scelta
if %scelta% GTR %count% (
for /l %%i in (3,-1,1) do (
cls
echo Riga non presente sarai reinderizzato al menu precedente attendi [%%i] secondi
timeout 1 > nul
)
goto elimina_contatto
)
if %scelta% LSS 1 (
for /l %%i in (3,-1,1) do (
cls
echo Riga non presente sarai reinderizzato al menu precedente attendi [%%i] secondi
timeout 1 > nul
)
goto elimina_contatto
)
set /a controllo=scelta
if !controllo! EQU 0 (
if !scelta! EQU 0 (
set /a count=0
type nul > rubrica\elenco\unico\rubrica_nomi_salvati.txt
for /f "tokens=*" %%i in (rubrica\elenco\unico\rubrica.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\unico\rubrica_nomi_salvati.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\unico\rubrica.txt )
)
type rubrica\elenco\unico\rubrica_nomi_salvati.txt > rubrica\elenco\unico\rubrica.txt
set /a count=0
type nul > rubrica\elenco\categorie\nome\nome_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\nome\nome.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\nome\nome_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\nome\nome.txt )
)
type rubrica\elenco\categorie\nome\nome_salvato.txt > rubrica\elenco\categorie\nome\nome.txt
set /a count=0
type nul > rubrica\elenco\categorie\cognome\cognome_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\cognome\cognome.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\cognome\cognome_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\cognome\cognome.txt )
)
type rubrica\elenco\categorie\cognome\cognome_salvato.txt > rubrica\elenco\categorie\cognome\cognome.txt
set /a count=0
type nul > rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\indirizzo\indirizzo.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\indirizzo\indirizzo.txt )
)
type rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt > rubrica\elenco\categorie\indirizzo\indirizzo.txt
set /a count=0
type nul > rubrica\elenco\categorie\citta\citta_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\citta\citta.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\citta\citta_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\citta\citta.txt )
)
type rubrica\elenco\categorie\citta\citta_salvato.txt > rubrica\elenco\categorie\citta\citta.txt
set /a count=0
type nul > rubrica\elenco\categorie\telefono\telefono_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\telefono\telefono.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\telefono\telefono_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\telefono\telefono.txt )
)
type rubrica\elenco\categorie\telefono\telefono_salvato.txt > rubrica\elenco\categorie\telefono\telefono.txt
) else (
for /l %%i in (3,-1,1) do (
cls
echo Riga non presente sarai reinderizzato al menu attendi [%%i] secondi
timeout 1 > nul
)
goto elimina_contatto
)
) else (
set /a count=0
type nul > rubrica\elenco\unico\rubrica_nomi_salvati.txt
for /f "tokens=*" %%i in (rubrica\elenco\unico\rubrica.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\unico\rubrica_nomi_salvati.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\unico\rubrica.txt )
)
type rubrica\elenco\unico\rubrica_nomi_salvati.txt > rubrica\elenco\unico\rubrica.txt
set /a count=0
type nul > rubrica\elenco\categorie\nome\nome_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\nome\nome.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\nome\nome_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\nome\nome.txt )
)
type rubrica\elenco\categorie\nome\nome_salvato.txt > rubrica\elenco\categorie\nome\nome.txt
set /a count=0
type nul > rubrica\elenco\categorie\cognome\cognome_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\cognome\cognome.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\cognome\cognome_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\cognome\cognome.txt )
)
type rubrica\elenco\categorie\cognome\cognome_salvato.txt > rubrica\elenco\categorie\cognome\cognome.txt
set /a count=0
type nul > rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\indirizzo\indirizzo.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\indirizzo\indirizzo.txt )
)
type rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt > rubrica\elenco\categorie\indirizzo\indirizzo.txt
set /a count=0
type nul > rubrica\elenco\categorie\citta\citta_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\citta\citta.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\citta\citta_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\citta\citta.txt )
)
type rubrica\elenco\categorie\citta\citta_salvato.txt > rubrica\elenco\categorie\citta\citta.txt
set /a count=0
type nul > rubrica\elenco\categorie\telefono\telefono_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\telefono\telefono.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\telefono\telefono_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\telefono\telefono.txt )
)
type rubrica\elenco\categorie\telefono\telefono_salvato.txt > rubrica\elenco\categorie\telefono\telefono.txt
for /l %%i in (3,-1,1) do (
cls
echo Contatto spostato nel cestino attendi [%%i] secondi
timeout 1 > nul
)
goto elimina_contatto
)
::---------------------------------------------------------------------
:elimina_da_nome_e_cognome
set /a count=0
for /f %%i in (rubrica\elenco\unico\rubrica.txt) do (
set /a count=count+1
)
if %count% EQU 0 (
for /l %%i in (3,-1,1) do (
cls
echo Nessun Nome in rubrica attendi [%%i] secondi
timeout 1 > nul
)
goto elimina_contatto
)
cls
:ritorno_elimina_nome_rubrica
cls
set /a nome_rubrica=0
set /p nome_rubrica=Nome:
call :strlen result nome_rubrica
if %result% LSS 1 goto ritorno_elimina_nome_rubrica
:ritorno_elimina_cognome_rubrica
cls
set /a cognome_rubrica=0
set /p cognome_rubrica=Cognome:
call :strlen result cognome_rubrica
if %result% LSS 1 goto ritorno_elimina_cognome_rubrica
set /a count=0
set /a count2=0
set /a scelta=0
for /f %%i in (rubrica\elenco\categorie\nome\nome.txt) do (
if /i %%i EQU %nome_rubrica% (
for /f %%a in (rubrica\elenco\categorie\cognome\cognome.txt) do (
if !count! EQU !count2! (
if /i %%a EQU %cognome_rubrica% (
set /a scelta=!count2!+1
)
)
set /a count2=!count2!+1
)
)
set /a count=!count!+1
)
set /a contollo=scelta
set /a count=0
type nul > rubrica\elenco\unico\rubrica_nomi_salvati.txt
for /f "tokens=*" %%i in (rubrica\elenco\unico\rubrica.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\unico\rubrica_nomi_salvati.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\unico\rubrica.txt )
)
type rubrica\elenco\unico\rubrica_nomi_salvati.txt > rubrica\elenco\unico\rubrica.txt
set /a count=0
type nul > rubrica\elenco\categorie\nome\nome_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\nome\nome.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\nome\nome_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\nome\nome.txt )
)
type rubrica\elenco\categorie\nome\nome_salvato.txt > rubrica\elenco\categorie\nome\nome.txt
set /a count=0
type nul > rubrica\elenco\categorie\cognome\cognome_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\cognome\cognome.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\cognome\cognome_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\cognome\cognome.txt )
)
type rubrica\elenco\categorie\cognome\cognome_salvato.txt > rubrica\elenco\categorie\cognome\cognome.txt
set /a count=0
type nul > rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\indirizzo\indirizzo.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\indirizzo\indirizzo.txt )
)
type rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt > rubrica\elenco\categorie\indirizzo\indirizzo.txt
set /a count=0
type nul > rubrica\elenco\categorie\citta\citta_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\citta\citta.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\citta\citta_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\citta\citta.txt )
)
type rubrica\elenco\categorie\citta\citta_salvato.txt > rubrica\elenco\categorie\citta\citta.txt
set /a count=0
type nul > rubrica\elenco\categorie\telefono\telefono_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\categorie\telefono\telefono.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\telefono\telefono_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\telefono\telefono.txt )
)
type rubrica\elenco\categorie\telefono\telefono_salvato.txt > rubrica\elenco\categorie\telefono\telefono.txt
if %scelta% EQU 0 (
for /l %%i in (3,-1,1) do (
cls
echo Nessun Nome trovato attendi [%%i] secondi
timeout 1 > nul
)
) else (
for /l %%i in (3,-1,1) do (
cls
echo Contatto spostato nel cestino attendi [%%i] secondi
timeout 1 > nul
)
)
goto elimina_contatto
::---------------------------------------------------------------------------------------------------------
:cestino
set /a count=0
for /f %%i in (rubrica\elenco\cestino\unico\rubrica.txt) do (
set /a count=count+1
)
if %count% EQU 0 (
for /l %%i in (3,-1,1) do (
cls
echo Nessun Nome nel cestino attendi [%%i] secondi
timeout 1 > nul
)
goto elimina_contatto
)
cls
type rubrica\interfaccia\menu_cestino.txt
echo;
CHOICE /N /C:1234 /M "Inserisci una scelta"
if %ERRORLEVEL%==1 goto Visualizza_cestino
if %ERRORLEVEL%==2 goto riprista_contatto
if %ERRORLEVEL%==3 goto svuota_cestino
if %ERRORLEVEL%==4 goto elimina_contatto
::---------------------------------------------------------------------------------------------------------
:Visualizza_cestino
cls
type rubrica\interfaccia\header_elenco.txt
echo;
type rubrica\elenco\cestino\unico\rubrica.txt
echo Premi un tasto per tornare indietro
PAUSE > nul
goto cestino
::---------------------------------------------------------------------------------------------------------
:riprista_contatto
set /a count2=count
cls
if %count2% GTR 9 (
type rubrica\interfaccia\spazio_vuoto.txt
) else (
if %count2% GTR 99 (
type rubrica\interfaccia\spazio_vuoto.txt type rubrica\interfaccia\spazio_vuoto.txt
) else (
if %count2% GTR 999 (
type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt
) else (
if %count2% GTR 9999 type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt
)
)
)
echo | set /p=N
type rubrica\interfaccia\spazio_vuoto.txt
type rubrica\interfaccia\header_elenco.txt
echo;
set /a count=0
for /f "tokens=*" %%i in (rubrica\elenco\cestino\unico\rubrica.txt) do (
set /a count=!count! + 1
if %count2% GTR 9 (
if not !count! GTR 9 type rubrica\interfaccia\spazio_vuoto.txt
) else (
if %count2% GTR 99 (
if not !count! GTR 99 type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt
) else (
if %count2% GTR 999 ( if !count! GTR 999 type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt
) else (
if not %count2% GTR 9999 if !count! GTR 9999 type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt && type rubrica\interfaccia\spazio_vuoto.txt
)
)
)
echo !count! %%i
)
set /a scelta=0
set /p scelta=Inserisci la riga corrispondente:
call :strlen result scelta
if %scelta% GTR %count% (
for /l %%i in (3,-1,1) do (
cls
echo Riga non presente sarai reinderizzato al menu precedente attendi [%%i] secondi
timeout 1 > nul
)
goto cestino
)
if %scelta% LSS 1 (
for /l %%i in (3,-1,1) do (
cls
echo Riga non presente sarai reinderizzato al menu precedente attendi [%%i] secondi
timeout 1 > nul
)
goto cestino
)
set /a controllo=scelta
if !controllo! EQU 0 (
if !scelta! EQU 0 (
set /a count=0
type nul > rubrica\elenco\cestino\unico\rubrica_nomi_salvati.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\unico\rubrica.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\unico\rubrica_nomi_salvati.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\rubrica.txt )
)
type rubrica\elenco\cestino\unico\rubrica_nomi_salvati.txt > rubrica\elenco\cestino\unico\rubrica.txt
set /a count=0
type nul > rubrica\elenco\cestino\categorie\nome\nome_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\categorie\nome\nome.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\nome\nome_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\nome\nome.txt )
)
type rubrica\elenco\cestino\categorie\nome\nome_salvato.txt > rubrica\elenco\cestino\categorie\nome\nome.txt
set /a count=0
type nul > rubrica\elenco\cestino\categorie\cognome\cognome_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\categorie\cognome\cognome.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\cognome\cognome_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\cognome\cognome.txt )
)
type rubrica\elenco\cestino\categorie\cognome\cognome_salvato.txt > rubrica\elenco\cestino\categorie\cognome\cognome.txt
set /a count=0
type nul > rubrica\elenco\cestino\categorie\indirizzo\indirizzo_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\categorie\indirizzo\indirizzo.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\indirizzo\indirizzo_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\indirizzo\indirizzo.txt )
)
type rubrica\elenco\cestino\categorie\indirizzo\indirizzo_salvato.txt > rubrica\elenco\cestino\categorie\indirizzo\indirizzo.txt
set /a count=0
type nul > rubrica\elenco\cestino\categorie\citta\citta_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\categorie\citta\citta.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\citta\citta_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\citta\citta.txt )
)
type rubrica\elenco\cestino\categorie\citta\citta_salvato.txt > rubrica\elenco\cestino\categorie\citta\citta.txt
set /a count=0
type nul > rubrica\elenco\cestino\categorie\telefono\telefono_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\categorie\telefono\telefono.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\telefono\telefono_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\telefono\telefono.txt )
)
type rubrica\elenco\cestino\categorie\telefono\telefono_salvato.txt > rubrica\elenco\cestino\categorie\telefono\telefono.txt
for /l %%i in (3,-1,1) do (
cls
echo Ripristino effettuato con successo attendi [%%i] secondi
timeout 1 > nul
)
goto cestino
)
) else (
set /a count=0
type nul > rubrica\elenco\cestino\unico\rubrica_nomi_salvati.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\unico\rubrica.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\unico\rubrica_nomi_salvati.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\unico\rubrica.txt )
)
type rubrica\elenco\cestino\unico\rubrica_nomi_salvati.txt > rubrica\elenco\cestino\unico\rubrica.txt
set /a count=0
type nul > rubrica\elenco\cestino\categorie\nome\nome_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\categorie\nome\nome.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\nome\nome_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\nome\nome.txt )
)
type rubrica\elenco\cestino\categorie\nome\nome_salvato.txt > rubrica\elenco\cestino\categorie\nome\nome.txt
set /a count=0
type nul > rubrica\elenco\cestino\categorie\cognome\cognome_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\categorie\cognome\cognome.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\cognome\cognome_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\cognome\cognome.txt )
)
type rubrica\elenco\cestino\categorie\cognome\cognome_salvato.txt > rubrica\elenco\cestino\categorie\cognome\cognome.txt
set /a count=0
type nul > rubrica\elenco\cestino\categorie\indirizzo\indirizzo_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\categorie\indirizzo\indirizzo.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\indirizzo\indirizzo_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\indirizzo\indirizzo.txt )
)
type rubrica\elenco\cestinocategorie\indirizzo\indirizzo_salvato.txt > rubrica\elenco\cestino\categorie\indirizzo\indirizzo.txt
set /a count=0
type nul > rubrica\elenco\cestino\categorie\citta\citta_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\categorie\citta\citta.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\citta\citta_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\citta\citta.txt )
)
type rubrica\elenco\cestino\categorie\citta\citta_salvato.txt > rubrica\elenco\cestino\categorie\citta\citta.txt
set /a count=0
type nul > rubrica\elenco\cestino\categorie\telefono\telefono_salvato.txt
for /f "tokens=*" %%i in (rubrica\elenco\cestino\categorie\telefono\telefono.txt) do (
set /a count=!count! + 1
if not !count! EQU %scelta% ( echo %%i>> rubrica\elenco\cestino\categorie\telefono\telefono_salvato.txt )
if !count! EQU %scelta% ( echo %%i>> rubrica\elenco\categorie\telefono\telefono.txt )
)
type rubrica\elenco\cestino\categorie\telefono\telefono_salvato.txt > rubrica\elenco\cestino\categorie\telefono\telefono.txt
for /l %%i in (3,-1,1) do (
cls
echo Ripristino effettuato con successo attendi [%%i] secondi
timeout 1 > nul
)
)
goto cestino
::---------------------------------------------------------------------------------------------------------
:svuota_cestino
cls
choice /c YN /m "Sei Sicuro di voler svuotare il cestino"
if %ERRORLEVEL% EQU 1 (
type nul > rubrica\elenco\cestino\categorie\nome\nome_salvato.txt
type nul > rubrica\elenco\cestino\categorie\cognome\cognome_salvato.txt
type nul > rubrica\elenco\cestino\categorie\indirizzo\indirizzo_salvato.txt
type nul > rubrica\elenco\cestino\categorie\citta\citta_salvato.txt
type nul > rubrica\elenco\cestino\categorie\telefono\telefono_salvato.txt
type nul > rubrica\elenco\cestino\unico\rubrica.txt
type nul > rubrica\elenco\cestino\unico\rubrica_nomi_salvati.txt
goto elimina_contatto
)
if %ERRORLEVEL% EQU 2 (
goto cestino
)
::---------------------------------------------------------------------------------------------------------
:elimina_rubrica
cls
choice /c YN /m "Sei Sicuro di voler eliiminare la rubrica"
if %ERRORLEVEL% EQU 1 (
type nul > rubrica\elenco\categorie\citta\citta_salvato.txt
type nul > rubrica\elenco\categorie\citta\citta.txt
type nul > rubrica\elenco\categorie\cognome\cognome_salvato.txt
type nul > rubrica\elenco\categorie\cognome\cognome.txt
type nul > rubrica\elenco\categorie\indirizzo\indirizzo_salvato.txt
type nul > rubrica\elenco\categorie\indirizzo\indirizzo.txt
type nul > rubrica\elenco\categorie\nome\nome_salvato.txt
type nul > rubrica\elenco\categorie\nome\nome.txt
type nul > rubrica\elenco\categorie\telefono\telefono_salvato.txt
type nul > rubrica\elenco\categorie\telefono\telefono.txt
type nul > rubrica\elenco\cestino\categorie\citta\citta_salvato.txt
type nul > rubrica\elenco\cestino\categorie\citta\citta.txt
type nul > rubrica\elenco\cestino\categorie\cognome\cognome_salvato.txt
type nul > rubrica\elenco\cestino\categorie\cognome\cognome.txt
type nul > rubrica\elenco\cestino\categorie\indirizzo\indirizzo_salvato.txt
type nul > rubrica\elenco\cestino\categorie\indirizzo\indirizzo.txt
type nul > rubrica\elenco\cestino\categorie\nome\nome_salvato.txt
type nul > rubrica\elenco\cestino\categorie\nome\nome.txt
type nul > rubrica\elenco\cestino\categorie\telefono\telefono_salvato.txt
type nul > rubrica\elenco\cestino\categorie\telefono\telefono.txt
type nul > rubrica\elenco\cestino\unico\rubrica_nomi_salvati.txt
type nul > rubrica\elenco\cestino\unico\rubrica.txt
type nul > rubrica\elenco\unico\rubrica_cerca.txt
type nul > rubrica\elenco\unico\rubrica.txt
type nul > rubrica\elenco\unico\rubrica_nomi_salvati.txt
type nul > rubrica\elenco\unico\rubrica_ordinata.txt
goto menu_principale
)
if %ERRORLEVEL% EQU 2 (
goto menu_principale
)
::---------------------------------------------------------------------------------------------------------
:backup
dir /b rubrica\backup > rubrica\interfaccia\nomi_backup.txt
cls
type rubrica\interfaccia\menu_backup.txt
echo;
CHOICE /N /C:1234 /M "Inserisci una scelta"
if %ERRORLEVEL%==1 goto ripristina_da_backup
if %ERRORLEVEL%==2 goto effettua_backup
if %ERRORLEVEL%==3 goto elimina_backup
if %ERRORLEVEL%==4 goto indietro_backup
::---------------------------------------------------------------------------------------------------------
:ripristina_da_backup
set /a count=0
for /f %%i in (rubrica\interfaccia\nomi_backup.txt) do (
set /a count=count+1
)
if %count% EQU 0 (
for /l %%i in (3,-1,1) do (
cls
echo Nessun Backup presente attendi [%%i] secondi
timeout 1 > nul
)
goto backup
)
cls
echo | set /p=N
type rubrica\interfaccia\spazio_vuoto.txt
echo;
set /a count=0
for /f "tokens=*" %%i in (rubrica\interfaccia\nomi_backup.txt) do (
set /a count=!count! + 1
echo !count!. %%i
)
set /a scelta=0
set /p scelta=Scegliere backup da ripristinare
if %scelta% GTR %count% (
for /l %%i in (3,-1,1) do (
cls
echo Backup non presente sarai reinderizzato al menu precedente attendi [%%i] secondi
timeout 1 > nul
)
goto backup
)
if %scelta% LSS 1 (
for /l %%i in (3,-1,1) do (
cls
echo Backup non presente sarai reinderizzato al menu precedente attendi [%%i] secondi
timeout 1 > nul
)
goto backup
)
set /a controllo=scelta
if !controllo! EQU 0 (
if !scelta! EQU 0 (
set /a count=0
for /f "tokens=*" %%i in (rubrica\interfaccia\nomi_backup.txt) do (
set /a count=!count! + 1
if !count! EQU %scelta% (
cls
choice /c YN /m "Sei Sicuro di voler ripristinare la rubrica dal backup del %%i sovrascrivendo quella attuale"
if %ERRORLEVEL%==1 (
rmdir /s /q rubrica\elenco
xcopy /s /q /e rubrica\backup\%%i rubrica\
cls
echo Ripristino effettuato con successo dal backup del %%i
timeout 3 > nul
goto backup
)
if %ERRORLEVEL%==2 goto backup
)
)
) else (
for /l %%i in (3,-1,1) do (
echo Potrai reinserire l'input fra [%%i] secondi
timeout 1 > nul
)
goto ripristina_da_backup
)
) else (
set /a count=0
for /f "tokens=*" %%i in (rubrica\interfaccia\nomi_backup.txt) do (
set /a count=!count! + 1
if !count! EQU %scelta% (
cls
choice /c YN /m "Sei Sicuro di voler ripristinare la rubrica dal backup del %%i sovrascrivendo quella attuale"
if !ERRORLEVEL!==1 (
rmdir /s /q rubrica\elenco
xcopy /s /q /e rubrica\backup\%%i rubrica\
cls
echo Ripristino effettuato con successo dal backup del %%i
timeout 3 > nul
goto backup
)
if !ERRORLEVEL!==2 (goto backup)
)
)
)
goto backup
::---------------------------------------------------------------------------------------------------------
:effettua_backup
set backupDir=%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%
md rubrica\backup\"%backupDir%"
xcopy /s /q /e rubrica\elenco rubrica\backup\%backupDir%\elenco\
cls
echo Backup effettuato con successo
timeout 3 > nul
goto backup
::---------------------------------------------------------------------------------------------------------
:elimina_backup
set /a count=0
for /f %%i in (rubrica\interfaccia\nomi_backup.txt) do (
set /a count=count+1
)
if %count% EQU 0 (
for /l %%i in (3,-1,1) do (
cls
echo Nessun Backup presente attendi [%%i] secondi
timeout 1 > nul
)
goto backup
)
cls
echo | set /p=N
type rubrica\interfaccia\spazio_vuoto.txt
echo;
set /a count=0
for /f "tokens=*" %%i in (rubrica\interfaccia\nomi_backup.txt) do (
set /a count=!count! + 1
echo !count!. %%i
)
set /a scelta=0
set /p scelta=Scegliere backup da eliminare
if %scelta% GTR %count% (
for /l %%i in (3,-1,1) do (
cls
echo Backup non presente sarai reinderizzato al menu precedente attendi [%%i] secondi
timeout 1 > nul
)
goto backup
)
if %scelta% LSS 1 (
for /l %%i in (3,-1,1) do (
cls
echo Backup non presente sarai reinderizzato al menu precedente attendi [%%i] secondi
timeout 1 > nul
)
goto backup
)
set /a controllo=scelta
if !controllo! EQU 0 (
if !scelta! EQU 0 (
set /a count=0
for /f "tokens=*" %%i in (rubrica\interfaccia\nomi_backup.txt) do (
set /a count=!count! + 1
if !count! EQU %scelta% (
choice /c YN /m "Sei Sicuro di il backup del %%i"
if !ERRORLEVEL!==1 (
rmdir /s /q rubrica\backup\%%i
cls
goto backup
)
if !ERRORLEVEL!==2 goto backup
)
)
)
) else (
set /a count=0
for /f "tokens=*" %%i in (rubrica\interfaccia\nomi_backup.txt) do (
set /a count=!count! + 1
if !count! EQU %scelta% (
cls
choice /c YN /m "Sei Sicuro di il backup del %%i"
if !ERRORLEVEL!==1 (
rmdir /s /q rubrica\backup\%%i
cls
goto backup
)
if !ERRORLEVEL!==2 goto backup
)
)
)
goto backup
::---------------------------------------------------------------------------------------------------------
:indietro_backup
goto menu_principale
::---------------------------------------------------------------------------------------------------------
:esci
cls
for /l %%i in (0,+1,5) do (
echo grazie di aver utilizzato il programma
echo https://alltimenowsite.altervista.org/
timeout 1 > nul
)
exit
::---------------------------------------------------------------------------------------------------------
:strlen <resultVar> <stringVar>
(
setlocal EnableDelayedExpansion
set "s=!%~2!#"
set "len=0"
for %%P in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
if "!s:~%%P,1!" NEQ "" (
set /a "len+=%%P"
set "s=!s:~%%P!"
)
)
)
(
endlocal
set "%~1=%len%"
exit /b
)
::---------------------------------------------------------------------------------------------------------