How to do I batch change icons of folders in Windows 10?
Solution 1:
This is 3 years late but here we go
you can manually bulk change folders' icons by
- applying read-only attribute to the folders.
- applying read-only attribute to desktop.ini files inside the folders.
- the desktop.ini should correctly refer to the icon we want.
STEP 1: ACTIVATE POWERSHELL & CREATE POWERSHELL SCRIPT
Start Windows PowerShell with the "Run as Administrator" option. Only members of the Administrators group on the computer can change the execution policy.
Enable running unsigned scripts by entering:
set-executionpolicy remotesigned
in notepad copy this code and save the file as script.ps1 in the directory D:\icons\
<# copy desktop.ini recursively #>
Get-ChildItem -Recurse -Directory|
foreach { copy "D:\Icons\desktop.ini" $_.FullName}
<# set folder attribute readonly recursively #>
Get-ChildItem -Recurse -Directory|
foreach {$_.Attributes = 'readonly'}
<# set attribute readonly for desktop.ini recursively #>
Get-ChildItem -Recurse -include *.ini|
foreach {$_.Attributes = 'readonly,hidden'}
<# set attribute hidden for folder.ico recursively #>
Get-ChildItem -Recurse -include *.ico|
foreach {$_.Attributes = 'hidden'}
in notepad copy this code and save the file as enable_icons.bat in the directory D:\icons\
@ECHO OFF
PowerShell.exe -Command "D:\icons\script.ps1"
PAUSE
STEP 2: CREATE DESKTOP.INI FILE
in notepad copy this code and save the file as DESKTOP.INI in the directory D:\icons\
[.ShellClassInfo]
IconResource=folder.ico,0
[ViewState]
Mode=
Vid=
FolderType=Generic
now inside the directory D:\icons\ we should have 3 files
- desktop.ini
- enable_icons.bat
- script.ps1
STEP 3: SENDTO FOLDER
copy enable_icons.bat to sendto folder
use either of these to access it
c:\users\[username]\AppData\Roaming\Microsoft\Windows\SendTo
or
%AppData%\Microsoft\Windows\SendTo
FINAL STEP : HOW TO APPLY
- Inside each folder, place your icon and rename it to
folder.ico
- Select [parent folder] of [folders you want to change their icons] > right click > send to > enable-icons
if you already have only ONE icon file inside each folder use this batch script to rename them all.
in notepad copy this code and save the file as rename_icons.bat in the same directory as [parent folder]
@echo off
setlocal enabledelayedexpansion
FOR /r %%A IN (*.ico) DO (
echo.
echo "%%A"
REN "%%~fA" "folder.ico")
pause
now drag the [parent folder] to rename_icons.bat
. . . . A VERY IMPORTANT NOTE:
This is very powerful that it may affect neighboring folders
(in other words it works but too well and someone smarter can fix it)
for the time being, MAKE SURE THAT [parent folder] is the only folder in the directory