Il file batch prevede che abbiate un'icona personalizzata salvata nella directory C:\Icone.
Ecco il testo per creare la cartella nella posizione in cui salvate il file .bat:
CLS
@echo ===============================================
@echo CREAZIONE CARTELLE CON ICONE PERSONALIZZATE
@echo ===============================================
@echo.
@echo Creazione cartelle...
@echo ----------------------------------
@echo.
cd %userprofile%
md Cartella
attrib +s Cartella
cd Cartella
@echo.
@echo Assegnazione icone...
@echo ----------------------------------
echo [.ShellClassInfo] >> Desktop.ini
echo IconResource=C:\Icone\icona.ico,0 >> Desktop.ini
echo [ViewState] >> Desktop.ini
echo Mode= >> Desktop.ini
echo Vid= >> Desktop.ini
echo FolderType=Generic >> Desktop.ini
@echo.
attrib +h +s Desktop.ini
PAUSE
Lo script si posiziona nella cartella dell'utente corrente (cd %userprofile%), crea la cartella, le attribuisce lo status di "cartella di sistema", necessario affinché l'icona sia aggiornata, quindi crea il file Desktop.ini, con al suo interno le informazioni sull'icona da usare.@echo ===============================================
@echo CREAZIONE CARTELLE CON ICONE PERSONALIZZATE
@echo ===============================================
@echo.
@echo Creazione cartelle...
@echo ----------------------------------
@echo.
cd %userprofile%
md Cartella
attrib +s Cartella
cd Cartella
@echo.
@echo Assegnazione icone...
@echo ----------------------------------
echo [.ShellClassInfo] >> Desktop.ini
echo IconResource=C:\Icone\icona.ico,0 >> Desktop.ini
echo [ViewState] >> Desktop.ini
echo Mode= >> Desktop.ini
echo Vid= >> Desktop.ini
echo FolderType=Generic >> Desktop.ini
@echo.
attrib +h +s Desktop.ini
PAUSE
Chiaramente dovete sostituire il percorso di IconResource con quello di vostro interesse. Stessa cosa bisogna cambiare lo 0 dopo il nome dell'icona, se per caso il file icona ha al suo interno più icone e vogliate sceglierne una differente (la prima icona è indicizzata con 0, dunque la seconda sarà 1, la terza 2 e via discorrendo).
Al file Desktop.ini è poi assegnato lo status di file di sistema e di file nascosto.
Per visualizzare l'icona aggiornata potrebbe essere necessario premere F5 per aggiornare la visualizzazione.
Ottimo articolo.
RispondiEliminaVorrei sapere se c'è un modo, non per cambiarne una, ma per cambiare tante icone tutte insieme. Semplificando si potrebbe attribuire alla cartella lo stesso nome dell'icona. Ciao e Grazie
Ciao Azza, lieto che ti sia stato utile. Ti segnalo che nel post originale alla nona riga del codice c'era un errore che adesso ho corretto. Avevo infatti scritto "cd %localhost%" invece di "cd %userprofile%".
RispondiEliminaPer rispondere alla domanda nel tuo commento, invece, nel caso hai necessità di creare tante cartelle personalizzate quante sono le icone a tua disposizione, il codice da usare sarebbe questo seguente. Per facilità di scrittura ho ipotizzato che tu abbia la solita cartella "C:\Icone" e che le cartelle personalizzate verranno create in una sottodirectory chiamata "C:\Icone\cartelle_personalizzate", basandoci sul nome delle icone. Questo codice dovrai inserirlo in un file .bat all'interno di "C:\Icone":
FOR /r %%i IN (*.ico) DO (
@ECHO %%~ni
md C:\icone\cartelle_personalizzate\%%~ni
attrib +s C:\icone\cartelle_personalizzate\%%~ni
cd C:\icone\cartelle_personalizzate\%%~ni
@echo.
@echo Assegnazione icone...
@echo ----------------------------------
echo [.ShellClassInfo] >> Desktop.ini
echo IconResource=C:\Icone\%%~ni.ico,0 >> Desktop.ini
echo [ViewState] >> Desktop.ini
echo Mode= >> Desktop.ini
echo Vid= >> Desktop.ini
echo FolderType=Generic >> Desktop.ini
@echo.
attrib +h +s Desktop.ini
)
Questo commento è stato eliminato dall'autore.
RispondiEliminaGrazie per la risposta tempestiva.
RispondiEliminaQuesta serie di comandi è quasi perfetta, c'è solo un problema che ho solo io.
In pratica finchè le icone di partenza hanno un nome di una sola parola va tutto bene, se invece il nome ha più parole mi fa una cosa strana: mi crea tante cartelle quante ce ne sono tra uno spazio e l'altro.
Ad esempio: se la mia icona si intitola "Documenti di Famiglia" mi crea le cartelle "Documenti", "di" e "Famiglia".
Mi sa che è lo spazio che crea scompiglio.
E poi non mi associa le icone.
Forse sbaglio io qualcosa
Grazie per la pazienza
Ciao Azza, sì, il problema dipende dal fatto che le icone hanno lo spazio nel nome. Puoi provare a racchiudere tra doppie virgolette il percorso, ad esempio il comando md che crea la directory, diverrebbe:
Eliminamd "C:\icone\cartelle_personalizzate\%%~ni"
Adesso ti sto rispondendo al volo, non ho fatto prove. Non ricordo come si comporta la variabile %%~ni fra le virgolette, ma penso che dovrebbe andare bene. Invece non so alla riga che viene scritta in Dekstop.ini, se il percorso va bene virgolettato, parlo di questa riga:
echo IconResource=C:\Icone\%%~ni.ico,0 >> Desktop.ini
Potresti provare a creare manualmente la cartella con icona personalizzata che punta ad un'icona con lo spazio nel nome, e poi editare il Dekstop.ini che ci trovi all'interno per vedere come viene scritta quella riga (se il Desktop.ini non è visibile, devi abilitare la visualizzazione dei file nascosti).
Oppure, cosa secondo me più semplice, sostituisci lo spazio con il trattino basso _ nel nome delle icone, lanci il file batch e poi rimetti lo spazio. Se sono tante icone, puoi usare una utility per rinominare in massa i file. Io uso Renamer.
Scusami, ti sto dando noia.
RispondiEliminaTi spiego brevemente il mio "problema".
In pratica, a moltissime cartelle che creo associo un'icona personalizzata.
Avendo dovuto formattare il PC e, per riavere le icone come erano prima, dovrei fare per tutte la procedura standard: Tasto DX sulla cartella,Proprietà, Personalizza, Cambia icona, ecc...
Dovrei farlo migliaia di volte, hai in mente qualche metodo più sbrigativo?
Per il momento ti ringrazio per tutte le dritte che mi hai dato in precedenza.
Ciao Azza, sì avevo capito. Allora, ho provato con le virgolette come avevo detto nell'altra risposta e vengono create correttamente le cartelle anche con lo spazio nel nome.
EliminaIpotizzando che tu metta le icone in C:\Icone e nella stessa cartella metti il file .bat, il codice da usare è il seguente:
FOR /r %%i IN (*.ico) DO (
@ECHO %%~ni
md "C:\icone\cartelle_personalizzate\%%~ni"
attrib +s "C:\icone\cartelle_personalizzate\%%~ni"
cd "C:\icone\cartelle_personalizzate\%%~ni"
@echo.
@echo Assegnazione icone...
@echo ----------------------------------
echo [.ShellClassInfo] >> Desktop.ini
echo IconResource="C:\Icone\%%~ni.ico",0 >> Desktop.ini
echo [ViewState] >> Desktop.ini
echo Mode= >> Desktop.ini
echo Vid= >> Desktop.ini
echo FolderType=Generic >> Desktop.ini
@echo.
attrib +h +s Desktop.ini
)
Ti creerà le cartelle con icona personalizzata in C:\Icone\cartelle_personalizzate. Se non la fai tu prima la directory "cartelle_personalizzate" te la crea lo script.
Spero che funzioni, altrimenti l'alternativa è crare un programmino in Python.
Ho provato il codice e va benissimo, mi crea solo qualche difficoltà con i nomi che hanno caratteri accentati, l'apostrofo ecc. Li ho sistemati manualmente.
RispondiEliminaTi ringrazio per i consigli e per la pazienza
Ciao!
Figurati. Lieto di esserti stato di aiuto. Alla prossima! ;-)
Elimina