Показать полную графическую версию : [решено] Смена значка папки из командной строки
Веталь_Забродский@fb
09-05-2013, 11:48
можно ли через командную строку поменять иконку(значок) папке?
и как это сделать?
@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 — Википедия (http://ru.wikipedia.org/wiki/Desktop.ini)
Отсюда (http://forum.oszone.net/post-1668332.html#post1668332) и ниже.
Веталь_Забродский@fb
09-05-2013, 13:09
объясни что каждая строчка означает плиз
зарание спасибо
Веталь_Забродский@fb
09-05-2013, 21:18
что означают с 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
echo /?
setlocal /?
set /?
Группировка команд скобками для группировки их вывода в файл.
attrib.exe /?
endlocal /?
exit /?
Примечание.
attrib.exe +r "%sPath%" »
- для Windows XP не принципиально, для Windows Vista - ? (вероятно, нужно), для Windows 7, 8 - обязательно.
Возможен также вариант:
ATTRIB +S "%sPath%"
Так делают некоторые сторонние программы.
- для Windows XP не принципиально »
Принципиально.
Для Windows XP проверял. Не принципиально. Возможна только задержка отображения до обновления папки или, в крайнем случае, до перезагрузки.
Для Windows XP проверял. Не принципиально. »
Georgio, описывайте, как проверяли. У меня после снятия с папки атрибута Read-Only — её пользовательская иконка меняется на стандартную.
Iska, попробуйте просто скопировать готовый файл desktop.ini из папки с нестандартным значком в другую папку без атрибутов R и/или S и обновить её. А вот снятие этих атрибутов с уже "атрибутированной" папки с нестандартным значком действительно прекращает его отображение. На всякий случай: у меня SP2.
Iska, попробуйте просто скопировать готовый файл desktop.ini из папки с нестандартным значком в другую папку без атрибутов R и/или S и обновить её. »
Скопировал. Обновил. Иконка у папки осталась стандартной.
В то же время задание/снятие у папки атрибута Read-Only меняет иконку без обновления. ОС — Microsoft Windows Professional SP3 RU.
В то же время задание/снятие у папки атрибута 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- и т. п. файлы нежелательно хотя бы потому, что зто громоздко. Лучше из них предварительно "вытащить" нужную иконку.
[решено] Как присвоить папке определенную иконку (http://forum.oszone.net/post-2103273.html#post2103273)
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 это началось.
Iska, если будет желание, проверьте на Windows XP Professional SP3 вот такое моё ноу-хау: »
Проверил. Иконка меняется.
Iska, спасибо! Теперь очередь за "Longhorn" Windows Vista.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.