Страница 5 из 6

Добавлено: Чт мар 14, 2013 00:09
Serge Yolkin
ask-rus
Проверяй.

Код: Выделить всё

спатьХачуНимагу.quit()
Только поравь в десятой строчке путь к иконке по умолчанию - будет использоваться, если в комстроке не задана, а сразу идут папки. Там, перед ней, комментарий - всё написано.

Добавлено: Чт мар 14, 2013 08:17
Avada
All
Поскольку в этой теме и раньше обсуждались, и теперь обсуждаются главным образом скриптовые решения, оставлять её и далее в подфоруме "Общие вопросы" не считаю целесообразным. Переносится в "Автоматизацию".

Добавлено: Чт мар 14, 2013 10:58
ask-rus
Serge Yolkin писал(а):Проверяй.

Код: Выделить всё

TOTALCMD#BAR#DATA
T:\icon4folders.wsf %COMMANDER_PATH%\ICON\(260)Font.ico
%S
C:\Windows\System32\WScript.exe,3
icon4folders


-1
---------------------------
Windows Script Host
---------------------------
Сценарий: T:\icon4folders.wsf
Строка: 68
Символ: 8
Ошибка: Объект не поддерживает это свойство или метод
Код: 800A01B6
Источник: Ошибка выполнения Microsoft JScript

---------------------------
ОК
---------------------------

Добавлено: Чт мар 14, 2013 11:58
Serge Yolkin
ask-rus
Гы... Лажанул. Исправил. (наверное, и в правду спать хотел)

Добавлено: Чт мар 14, 2013 13:04
ask-rus
Serge Yolkin
desktop.ini с необходимым содержимым и атрибутами успешно создаётся в файле под курсором или выделенных каталогах. Также успешно заменяет уже существующий с теми или иными атрибутами.

Иконка успешно копируется в каталог под курсором или выделенные каталоги. Однако, если в каталоге уже была иконка (был другой значок на каталоге), она остаётся, и её потребуется удалять вручную. Есть решение, привести значок к одному имени (icon.ico, а лучше desktop.ico), ведь desktop.ini всегда и везде один. Тут уж, как знаешь, просто нужен будет скрипт, снимающий иконку с каталога, а для этого нужно удалить desktop.ini, удалить иконку, снять атрибут с папки. Скрипт Batya иконку не удалит.

Как ты обновляешь файл. панель? На долю секунды делаешь окно TC неактивным? Окно мигает... Если что, я мог бы сам обновлять, дополнив скрипт командой TC с TCMC: пользовательская команда со скриптом + cm_RereadSource.

Добавлено: Чт мар 14, 2013 16:36
Serge Yolkin
ask-rus писал(а):Как ты обновляешь файл. панель? На долю секунды делаешь окно TC неактивным?
Ты не поверишь... Никак. Вероятно, на время выполнения скрипта фокус передаётся ему.

А с переименованием проблема одна: время. Вечером подрихтую.
Скрипт снятия иконки можно объеденить с обсуждаемым. Скажем, ключ /clear первым параметром, вместо пути к иконке. И ещё. Сейчас скрипт проверяет параметры, и, если есть НЕпапка, прекращает работу (с сообщением). Можно сделать иначе: если папка - меняем иконку, если нет (сколько угодно раз) - в конце сообщим. Т.е. все переданные папки будут обработаны, а НЕпапки, если такие есть, показаны в сообщении после того, как скрипт отработает. Если нада - допилю, если нет - и Бог с ним.

Добавлено: Чт мар 14, 2013 17:06
ask-rus
Serge Yolkin писал(а):Ты не поверишь... Никак. Вероятно, на время выполнения скрипта фокус передаётся ему.
Ладно, это не критично.
Serge Yolkin писал(а):Скрипт снятия иконки можно объеденить с обсуждаемым. Скажем, ключ /clear первым параметром, вместо пути к иконке.
Было бы здорово.
Serge Yolkin писал(а):И ещё. Сейчас скрипт проверяет параметры, и, если есть НЕпапка, прекращает работу (с сообщением). Можно сделать иначе: если папка - меняем иконку, если нет (сколько угодно раз) - в конце сообщим. Т.е. все переданные папки будут обработаны, а НЕпапки, если такие есть, показаны в сообщении после того, как скрипт отработает. Если нада - допилю, если нет - и Бог с ним.
Надо. :wink:

Добавлено: Пт мар 15, 2013 01:48
Serge Yolkin
Не-е-е, вчера я не хотел спать...
Проверяй.
При очистке я атрибут с папки решил не снимать: ну и что, что ридонли?

И осторожнее с именем иконки (когда она уже в папке): в первой же папке, на которой я решил скрипт потестить, валялась, оказывается, иконка desktop.ico. Теперь даже не знаю, что в ней было нарисовано... Там в следующей, после иконки по умолчанию, строчке это имя и задаётся. Рекомендую что-нибудь вроде "папочнаяИконкаДляМоегоЛюбимогоТотала.ico", чтобы с существующими не пересечься.

Добавлено: Пт мар 15, 2013 07:47
ask-rus
Serge Yolkin
Убрал мигание! Отлично, сделаю, как говорил.

С установкой значка всё в норме, фильтр работает. Даже третья пустая строка в desktop.ini радует. :) Дело в том, что в Листере две строки по какой-то причине выстраивались в одну, а в AkelPad у меня по умолчанию секции *.INI свёрнуты и без третьей строки вторая не скрывалась под заголовком секции - это визуально, сейчас всё в порядке.

Со снятием значка тоже всё отлично.
Serge Yolkin писал(а):При очистке я атрибут с папки решил не снимать: ну и что, что ридонли?
Не знаю, по-моему, это дополнительный ориентир, что папка помечена.
Цвет стандартной папки у меня жёлтый, в списке цветов будет и оранжевый, близкий к жёлтому. Малость будут сливаться, зато атрибут в помощь.

Изображение

Если это вернёт мигание или ещё какую неприятность, то, конечно, это не нужно. В любом случае, требуемое выполнено.

Благодарю!

Добавлено: Пт мар 15, 2013 13:19
Serge Yolkin
Ещё поправил. Доводка рашпилем, блин.

Попробуй так: поменяй иконку на папке с альтернативной системной (например, Мои документы) и потом очисть - должна вернуться системная. Атрибут r с папки снимается (должен сниматься), остальные не трогал.

Добавлено спустя 48 секунд:

На работе тестить не могу - прав никаких.

Добавлено: Пт мар 15, 2013 17:15
ask-rus
Serge Yolkin писал(а):Ещё поправил. Доводка рашпилем, блин.
Рашпиль жестковат для финишной обработки, напильничком надо было.

По теме, на только что созданных папках скрипт отрабатывает хорошо, т.е. всё, что мы ожидаем, выполняется.

На ранее тестируемых папках, коих уже большое количество, с различным содержимым, но, где ещё НЕ создавался desktop.ICO, при очищении атрибут с папки НЕ снимается, desktop.ini НЕ удаляется и, будучи -ahs, становится просто -a--.

Такие дела.

Добавлено спустя 9 минут:

Системная папка Contacts\
C:\Users\Asker\Contacts\
пустая, но с desktop.ini (атр. -ahs). Очищаю - атрибут папки по-прежнему r---, атрибут desktop.ini -a--, что и требовалось доказать.

Добавлено спустя 24 минуты:

Что касается установки значка, я вижу создаётся desktop.ini.bak. Очищение после этого происходит хорошо, а desktop.ini.bak восстанавливается в desktop.ini.

Добавлено: Сб мар 16, 2013 00:57
Serge Yolkin
В общем, всё так. Логика: если папке уже была назначена иконка, и это не desktop.ico в самой папке - бэкапим инишник, при очистке - восстанавливаем. Своё - переназначаем. Чтобы не чистить тестовые папки ручками добавил ключ /brute (правда, в подсказке его нет: недокументированный, блин). Используется так же, как /clear, но сносит инишник и его бэкап молча. Даже если вся гармония Вселенной после этого накроется медным тазом. Если всё работает, думаю, на этом можно закончить.

Добавлено: Сб мар 16, 2013 09:22
ask-rus
Serge Yolkin писал(а):Если всё работает, думаю, на этом можно закончить.
Всё работает. Ещё раз, спасибо!

Добавлено: Сб май 04, 2013 23:29
SaDim
Сделайте, пожалуйста, скрипт (а то при синхронизации слетает атрибут папок) осуществляющий поиск в текущей директории и её под директориях папки содержащие Desktop.ini и изменяющий её атрибут на “Только чтение”. Для надёги ещё и атрибут Desktop.ini на "Скрытый", "Системный", "Архивный".

Добавлено: Вс май 05, 2013 00:31
Flasher
SaDim
Стандартные средства ТС не годятся (найти нужное и поменять атрибуты у выделенного)?