Script batch: organizza i file per estensione
Uno script batch organizzare file per estensione permette di riordinare automaticamente una cartella di Windows creando una sottocartella per ogni tipo di file. Il file batch seguente riconosce l’estensione, crea la directory corrispondente e sposta al suo interno i file trovati nella cartella indicata. Lo script gestisce anche i file senza estensione, evita di spostare sé stesso e non sovrascrive i file con lo stesso nome già presenti nella destinazione. La procedura funziona con Windows 10 e Windows 11 senza installare programmi aggiuntivi.
Cosa fa lo script batch per organizzare i file
Lo script analizza esclusivamente i file presenti nella cartella principale indicata, senza entrare nelle sottocartelle già esistenti. Per ogni file viene utilizzata l’estensione, privata del punto iniziale, come nome della nuova cartella.
Un file chiamato fattura.pdf viene quindi spostato in PDF, mentre foto.jpg finisce nella cartella JPG. I file privi di estensione vengono trasferiti nella directory Senza_estensione.
Lo script batch organizzare file per estensione applica queste regole:
- Crea automaticamente le sottocartelle mancanti.
- Sposta soltanto i file, non le cartelle.
- Ignora il file
.batche contiene il codice. - Non sostituisce un file con lo stesso nome già presente nella cartella di destinazione.
- Organizza anche i file con estensioni mai utilizzate in precedenza.
- Considera l’estensione finale:
archivio.tar.gzviene inserito nella cartellaGZ.
Le estensioni scritte con maiuscole e minuscole possono generare cartelle separate, perché JPG e jpg sono nomi distinti nel codice utilizzato. Per evitare questo comportamento, è consigliabile mantenere una grafia uniforme nei nomi delle estensioni oppure modificare lo script con regole specifiche.
Come creare lo script batch organizzare file per estensione
Passo 1: aprire un editor di testo
Apri Blocco note di Windows oppure un editor di testo semplice. Copia il codice seguente senza modificarne la punteggiatura:
@echo off setlocal EnableExtensions DisableDelayedExpansion set "CARTELLA=%~1" if not defined CARTELLA set "CARTELLA=%CD%" if not exist "%CARTELLA%." ( echo La cartella indicata non esiste. pause exit /b 1 ) pushd "%CARTELLA%" || exit /b 1 for %%F in (*) do ( if not exist "%%~fF." ( if /I not "%%~nxF"=="%~nx0" ( call :SpostaFile "%%~fF" "%%~nxF" "%%~xF" ) ) ) popd echo Operazione completata. pause exit /b 0 :SpostaFile set "PERCORSO=%~1" set "NOME=%~2" set "ESTENSIONE=%~3" if defined ESTENSIONE ( set "CARTELLA_EST=%ESTENSIONE:~1%" ) else ( set "CARTELLA_EST=Senza_estensione" ) if not exist "%CARTELLA_EST%." md "%CARTELLA_EST%" if exist "%CARTELLA_EST%%NOME%" ( echo Ignorato: "%NOME%" esiste gia nella cartella "%CARTELLA_EST%". ) else ( move /-Y "%PERCORSO%" "%CARTELLA_EST%" >nul echo Spostato: "%NOME%" -^> "%CARTELLA_EST%" ) exit /b
Il comando move /-Y mantiene attiva la richiesta di conferma in caso di sovrascrittura, mentre il controllo if exist impedisce normalmente di trasferire un file quando nella destinazione è già presente un elemento con lo stesso nome.
Passo 2: salvare il file con estensione BAT
In Blocco note seleziona File > Salva con nome. Inserisci un nome come OrganizzaFile.bat, scegli Tutti i file nel campo Salva come e imposta, se disponibile, la codifica ANSI o UTF-8.
Il nome deve terminare realmente con .bat, non con .bat.txt. Se l’estensione .txt è nascosta da Esplora file, apri Visualizza > Mostra > Estensioni nomi file in Windows 11, oppure la scheda Visualizza di Esplora file in Windows 10, per verificare il nome completo.
Passo 3: eseguire il file nella cartella da riordinare
Copia OrganizzaFile.bat nella cartella da ordinare e fai doppio clic sul file. Quando non viene fornito alcun percorso, lo script utilizza la cartella corrente, cioè quella in cui si trova il file batch.
Un metodo più flessibile consiste nel trascinare una cartella sopra OrganizzaFile.bat. In questo caso Windows passa automaticamente il percorso della cartella come primo argomento e lo script lavora al suo interno, anche se il file batch si trova in una posizione diversa.
Per esempio, trascinando la cartella C:UsersMarcoDownloads sul file batch, lo script crea le sottocartelle direttamente in Downloads.
Controlli da fare prima di spostare i file
Prima di eseguire uno script batch organizzare file per estensione, crea una copia della cartella originale oppure verifica che i file importanti siano salvati anche altrove. Lo script sposta i file con il comando di Windows move; non crea una copia indipendente e non offre una funzione automatica di annullamento.
È preferibile effettuare una prima prova su una cartella contenente file non importanti. Il codice non entra nelle sottocartelle, quindi le directory già presenti e il loro contenuto non vengono modificati.
Il file batch non sposta sé stesso perché confronta il proprio nome con ogni elemento trovato. Il controllo che verifica la presenza del percorso %%~fF. permette inoltre di distinguere le cartelle dai file, evitando di trattare una directory come se fosse un documento con estensione.
I file con nomi contenenti caratteri particolari, soprattutto il punto esclamativo, possono richiedere una gestione più avanzata nei file batch. Per cartelle con nomi ordinari e file creati normalmente da Windows, il codice è adatto all’uso quotidiano.
Come modificare le cartelle create dallo script
Il nome della cartella deriva direttamente dall’estensione. Per questo motivo, documento.docx viene trasferito in DOCX, mentre presentazione.pptx viene trasferita in PPTX.
Per raccogliere più estensioni nella stessa directory, lo script deve essere modificato con regole dedicate. Ad esempio, per mettere sia i file jpg sia i file png nella cartella Immagini, occorre sostituire la logica che assegna il valore di CARTELLA_EST con condizioni basate sull’estensione.
La versione proposta è volutamente generica: non contiene elenchi predefiniti di formati e può organizzare file PDF, immagini, archivi ZIP, documenti Office, file audio e qualsiasi altro elemento dotato di estensione. Questo comportamento evita di dover aggiornare il codice ogni volta che compare un nuovo formato.
Per mantenere l’ordine nel tempo, esegui nuovamente lo stesso file batch quando nella cartella principale arrivano nuovi documenti. Le sottocartelle già create vengono riutilizzate e i file con nomi duplicati vengono lasciati nella posizione originale.
Uno script batch organizzare file per estensione è quindi adatto soprattutto a cartelle di lavoro, Download e directory temporanee, dove molti formati diversi tendono ad accumularsi rapidamente.
Potrebbe interessarti anche:
FAQ
Sì, il file batch usa comandi disponibili sia in Windows 10 sia in Windows 11 e non richiede software aggiuntivo.
No. Lo script analizza soltanto i file presenti direttamente nella cartella indicata e non modifica le sottocartelle esistenti.
Il file viene ignorato e rimane nella cartella originale; lo script mostra un messaggio che segnala il duplicato.
Sì. Trascinando una cartella sul file .bat, Windows passa il relativo percorso allo script, che organizza i file nella cartella trascinata.
I file senza estensione vengono spostati nella sottocartella Senza_estensione.
Altri articoli di questa serie:
- Script batch riparazione file sistema Windows 10/11
- Script BAT per pulire i file temporanei di Windows
- Script batch reset rete Windows: ripristino completo
- Script CMD per riparare Windows Update
- Script batch rapporto diagnostico Windows: tutorial
- Script BAT backup automatico Robocopy Windows
- Script batch controllo servizi Windows e arresti
- Script CMD per archiviare file vecchi su Windows
- Script BAT per controllare lo spazio disco in Windows
