Как создать/назначить пользовательский значок папки с помощью командной строки

Как создать/назначить пользовательский значок папки с помощью командной строки

Мне нравится создавать папки и назначать изображения/обложки в качестве миниатюр папок, а не генерировать стандартный значок папки. Я делаю это очень часто(в принципе, для каждой папки, для которой я смогу найти изображение).

Я настраиваю файл script/.bat, чтобы можно было поместить любой файл изображения в папку, нажать горячую клавишу, и тогда программа запустится.(Пиксиллион)чтобы преобразовать изображение в файл .Ico и скрыть его. Это также создастрабочий стол.iniфайл, подобно тому, как это делает Windows 10, когда вы вручную устанавливаете пользовательский значок папки.

[.ShellClassInfo]
IconResource=%ico%,0

после завершения моего скрипта Windows 10 распознает, что у меня есть пользовательский значок папки(потому что он не использует сгенерированный, показывая значки внутри папки), однако вместо этого он показывает пустую папку в качестве значка. Если я помещу файл .url в папку, а затем переименую его (вручную, не работает из cmd), значок папки обновится/правильно обновится до моего пользовательского значка.


Я ищу, как сделать это без этого последнего ручного шага.
Установить иобновлятьзначок автоматически.

решение1

Настройка через desktop.iniфайл требует не только файла, но и папки, которая должна иметь свой Systemили ReadOnlyустановленный атрибут. Это «переключатель», который сообщает ОС искать и обрабатывать файл desktop.ini папки. Когда Windows устанавливает пользовательский значок, она устанавливает атрибут ReadOnly— это можно проверить, добавив Attributesстолбец в Detailпредставление вИсследователь. ВPowerShell, если вы находитесь в папке/каталоге, используйте:

### View attriubtes
(Get-Item .).Attributes
# OUtput
PS C:\...\Customized FOlder>( Get-Item . ).Attributes
ReadOnly, Directory

### Set ReadOnly attriubtes
(Get-Item .).Attributes += 'ReadOnly'
# no output when successful

### Clear ReadOnly attriubtes
(Get-Item .).Attributes -= 'ReadOnly'
# no output when successful

введите описание изображения здесь

Атрибут очищен и вид обновлен:

введите описание изображения здесь

...и обратно: введите описание изображения здесь

Связанный контент