Веталь_Забродский@fb |
09-05-2013 11:48 2147057 |
Смена значка папки из командной строки
можно ли через командную строку поменять иконку(значок) папке?
и как это сделать?
|
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sPath=%ProgramFiles%\Mozilla Firefox
(
echo [.ShellClassInfo]
echo IconFile=%sPath%\firefox.exe
echo IconIndex=0
) >"%sPath%\desktop.ini"
attrib.exe +r "%sPath%"
endlocal
exit /b 0
Естественно, можно просто указывать *.ico файл. Если расположить его в той же папке — можно не указывать путь к файлу иконки.
Desktop.ini — Википедия
Отсюда и ниже.
|
Веталь_Забродский@fb |
09-05-2013 13:09 2147098 |
объясни что каждая строчка означает плиз
зарание спасибо
|
Веталь_Забродский@fb |
09-05-2013 21:18 2147326 |
что означают с 2 по 9 строчку
|
Веталь_Забродский@fb, нет нужды дублировать вопрос в PM.
читать дальше »
Код:
01: @echo off
02: setlocal enableextensions enabledelayedexpansion
03:
04: set sPath=%ProgramFiles%\Mozilla Firefox
05:
06: (
07: echo [.ShellClassInfo]
08: echo IconFile=firefox.exe
09: echo IconIndex=0
10: ) >"%sPath%\desktop.ini"
11:
12: attrib.exe +r "%sPath%"
13:
14: endlocal
15: exit /b 0
06-10
Группировка команд скобками для группировки их вывода в файл.
|
Примечание.
Цитата:
Цитата Iska
Код:
attrib.exe +r "%sPath%"
»
|
- для Windows XP не принципиально, для Windows Vista - ? (вероятно, нужно), для Windows 7, 8 - обязательно.
Возможен также вариант:
Так делают некоторые сторонние программы.
|
Цитата:
Цитата Georgio
- для Windows XP не принципиально »
|
Принципиально.
|
Для Windows XP проверял. Не принципиально. Возможна только задержка отображения до обновления папки или, в крайнем случае, до перезагрузки.
|
Цитата:
Цитата Georgio
Для Windows XP проверял. Не принципиально. »
|
Georgio, описывайте, как проверяли. У меня после снятия с папки атрибута Read-Only — её пользовательская иконка меняется на стандартную.
|
Iska, попробуйте просто скопировать готовый файл desktop.ini из папки с нестандартным значком в другую папку без атрибутов R и/или S и обновить её. А вот снятие этих атрибутов с уже "атрибутированной" папки с нестандартным значком действительно прекращает его отображение. На всякий случай: у меня SP2.
|
Цитата:
Цитата Georgio
Iska, попробуйте просто скопировать готовый файл desktop.ini из папки с нестандартным значком в другую папку без атрибутов R и/или S и обновить её. »
|
Скопировал. Обновил. Иконка у папки осталась стандартной.
В то же время задание/снятие у папки атрибута Read-Only меняет иконку без обновления. ОС — Microsoft Windows Professional SP3 RU.
|
Цитата:
Цитата Iska
В то же время задание/снятие у папки атрибута Read-Only меняет иконку без обновления. »
|
В моей Номе SP2 RU также.
|
Веталь_Забродский@fb, на этом примере показано как установить свою иконку на папку так, чтобы эта папка была переносимой на другой компьютер без потери отображения этой иконки.
Код:
@ECHO OFF
SET Icon_1=C:\Windows\surbey.ico
SET Folder=E:\17743124072517
XCOPY "%Icon_1%" "%Folder%" /H>nul
ECHO [.ShellClassInfo]>"%Folder%\desktop.ini"
FOR %%I IN ("%Icon_1%") DO ECHO IconFile=%%~nxI>>"%Folder%\desktop.ini"&&SET Icon_2=%Folder%\%%~nxI
1>>"%Folder%\desktop.ini" ECHO IconIndex=0
ATTRIB +R "%Folder%"
ATTRIB +H "%Icon_2%"
ATTRIB +H "%Folder%\desktop.ini"
Вместо ICO-файлов можно использовать BMP-файлы и другие файлы, содержащие значки. Использовать в этом варианте EXE-, DLL- и т. п. файлы нежелательно хотя бы потому, что зто громоздко. Лучше из них предварительно "вытащить" нужную иконку.
|
Iska, если будет желание, проверьте на Windows XP Professional SP3 вот такое моё ноу-хау:
Пример.
Код:
@ECHO OFF
SET Icon=C:\Windows\surbey.ico
SET Folder=E:\41091167616556
IF EXIST "%Folder%\desktop.ini" ATTRIB -S -H "%Folder%\desktop.ini"
TYPE "%Icon%">"%Folder%\desktop.ini"
(
ECHO.
ECHO [.ShellClassInfo]
ECHO IconFile=desktop.ini
ECHO IconIndex=0
)>>"%Folder%\desktop.ini"
ATTRIB +R "%Folder%"
Файл "desktop.ini" становится одновременно и файлом, содержащим зкачок. На моей Windows XP Home SP2 этот "номер" проходит на "ура". На Windows 7, 8 это невозможно, т. к., очевидно, "ужесточились" правила обработки системой файлов "desktop.ini". Т. е., если "ранее" в его начале перед всеми секциями можно было вставить бинарное содержимое (и он сам становился бинарным) без ущерба для функциональности, то "теперь" это сделать нельзя. Хотелось бы узнать, с какой версии Windows это началось.
|
Цитата:
Цитата Georgio
Iska, если будет желание, проверьте на Windows XP Professional SP3 вот такое моё ноу-хау: »
|
Проверил. Иконка меняется.
|
Iska, спасибо! Теперь очередь за "Longhorn" Windows Vista.
|
Время: 19:50.
© OSzone.net 2001-