Я написал пакетный скрипт для просмотра всех файлов png в папке и назначения их в качестве изображений папок, когда есть папки с одинаковым именем.
Скрипт работает безупречно, когда дело доходит до записи информации в desktop.ini
файлы. Есть только небольшая проблема: это не работает. Я не могу заставить папки читать измененные desktop.ini
файлы и обновлять их изображения.
Я использую Windows 8.1. Я подозреваю, что мне нужно удалить какой-то кэш, но я не знаю, что и как именно. Из того, что я прочитал, при смене значков папок вам нужно убить explorer.exe, удалить файлы iconcache и перезапустить explorer.exe.
Я понятия не имею, хранят ли файлы iconcache также изображения папок, но в любом случае убийство проводника ужасно для моего рабочего процесса. Я бы хотел, чтобы процесс не требовал уничтожения заданий, если это возможно.
Ниже приведен скрипт, который я использую:
set DriveL=E
set F=desktop.ini
set CatRoot=Media\Textures ^& 3D
set Cat=Nature Shaders
cd "%DriveL%:\%CatRoot%"
for /R %%I ("%Cat%\*.png") do @(
if exist %%~dpI%%~nI\ (
attrib -h -s -r "%~dp0%%~nI\%F%" 2>nul (
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Pictures
echo Logo=%%~dpI%%~nxI
) > "%~dp0%%~nI\%F%"
attrib +s +h +r "%~dp0%%~nI\%F%"
)
)
pause