Пометить файл/папку

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
A.N.T.
Сообщения: 190
Зарегистрирован: Сб июл 01, 2006 08:50

Пометить файл/папку

Сообщение A.N.T. »

Часто необходимо каким-нибудь образом временно пометить файл или папку, например цветом... что бы потом его можно было легко найти среди кучи всего остального, что бы можно придумать? Просто хочется горячей клавишей пометить папку, позже при необходимости вернуть в прежнее состояние. Можно конечно воспользоваться скриптом, который меняет дату папки на текущую и поставить фильтр, но такой фильтр у меня уже есть:?
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

1. Атрибутами.
2. Файловыми комментариями (Ctrl+Z).
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
A.N.T.
Сообщения: 190
Зарегистрирован: Сб июл 01, 2006 08:50

Сообщение A.N.T. »

1.Комментариями долго, не удобно(в данном случае)...
2.Что значит атрибутами?
Аватара пользователя
Nik
Сообщения: 583
Зарегистрирован: Сб янв 01, 2005 13:00
Откуда: Киров
Контактная информация:

Сообщение Nik »

Можно конечно воспользоваться скриптом, который меняет дату папки на текущую и поставить фильтр, но такой фильтр у меня уже есть
Как вариант - с помощью скрипта ставь дату, намного опережающую текущую (скажем, 2260 год :) ) и выделяй файлы с такой датой нужным цветом...
Качественный хостинг.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

A.N.T. писал(а):2.Что значит атрибутами?
Зарезервировать для себя, скажем, что файлы/папки с атрибутом "только для чтения" будут для тебя этими самыми, помеченными, ну и задать для них шаблон поиска, плюс цвет навесить, чтобы сразу отличать. Разумеется, не обязательно привязываться к "только для чтения", можно некую комбинацию задать. Например, "только для чтения" + "системный" + неустановленный "архивный". Я нечто подобное уже применял для себя, но потом перешёл на систему с комментариями как более мощную. Менее удобно, конечно - в основном тем, что нельзя задавать комментарии сразу нескольким файлам, но в семёрке этот недостаток будет убран.
Nik писал(а):скажем, 2260 год
Это будет затруднительно. :) (попробуй сам)
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
A.N.T.
Сообщения: 190
Зарегистрирован: Сб июл 01, 2006 08:50

Сообщение A.N.T. »

Всем спасибо! :) Больше конечно подходит вариант Nik'a, вот только менять дату на опережающую текущую ничем не грозит :!: :?:
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Значит так...
Используем Script Content Plugin.
Принцип работы - создаем файл-список, в котором сохраняем помечаемые файлы-папки. Настройте во всех скриптах один путь к файлу-списку.

В папке плагина создаем FilesInList.vbs:

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

Dim FSO, FilesList, oTextFile, AllText
FilesList = "D:\TotalCmd\PlugIns\Wdx\ScriptContent\FilesList.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
content = 0

Set oTextFile = FSO.OpenTextFile(FilesList, 1)
AllText = oTextFile.ReadAll
If InStr(1, AllText, filename, 1) > 0 Then
  content = 1
End If
oTextFile.Close
Set oTextFile = Nothing
Set FSO       = Nothing
Настраиваем инишник плагина:

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

[Script]
Section=Files In List
[Files In List]
Script=FilesInList.vbs
LongName=1
ParseDirs=1
Для добавления в файл-список используем vbs-скрипт:

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

'==============================================================================
' Добавление полного имени файла в файл-список
'
' В качестве параметра указать:
' %L
'==============================================================================
Option Explicit 
Dim FilesList
'============= Задайте файл-список ============================================
FilesList = "D:\TotalCmd\PlugIns\Wdx\ScriptContent\FilesList.txt"
'==============================================================================

If WScript.Arguments.Count = 0  Then 
  MsgBox "Не указан параметр - %L", _
         vbOKOnly + vbExclamation, _
         "Копирование имени файла в файл-список"
  WScript.Quit
End If

Dim FSO, oTextFile, AllText, OTF, FileName
Set FSO = CreateObject("Scripting.FileSystemObject")
Set OTF = FSO.OpenTextFile(WScript.Arguments(0), 1)
If FSO.FileExists(FilesList) Then
  Set oTextFile = FSO.OpenTextFile(FilesList, 1)
  AllText = oTextFile.ReadAll
  oTextFile.Close
Else
  AllText = ""
End If

Do While Not OTF.AtEndOfStream
  FileName = OTF.ReadLine
  If InStr(1, AllText, FileName, 1) = 0 Then
    Set oTextFile = FSO.OpenTextFile(FilesList, 8, 2)
    oTextFile.WriteLine FileName
    oTextFile.Close
  End If
Loop

OTF.Close
Set oTextFile = Nothing
Set OTF       = Nothing
Set FSO       = Nothing
WScript.Quit
Для удаления из файла-списка:

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

'==============================================================================
' Удаление полного имени файла из файла-списка
'
' В качестве параметра указать:
' %L
'==============================================================================
Option Explicit 
Dim FilesList
'============= Задайте файл-список ============================================
FilesList = "D:\TotalCmd\PlugIns\Wdx\ScriptContent\FilesList.txt"
'==============================================================================

If WScript.Arguments.Count = 0  Then 
  MsgBox "Не указан параметр - %L", _
         vbOKOnly + vbExclamation, _
         "Удаление имени файла из файла-списка"
  WScript.Quit
End If

Dim FSO, oTextFile, AllText, OTF, FileName
Set FSO       = CreateObject("Scripting.FileSystemObject")
Set OTF       = FSO.OpenTextFile(WScript.Arguments(0), 1)
Set oTextFile = FSO.OpenTextFile(FilesList, 1)
AllText       = oTextFile.ReadAll
oTextFile.Close

Do While Not OTF.AtEndOfStream
  FileName = OTF.ReadLine
  If InStr(1, AllText, FileName, 1) > 0 Then
    Set oTextFile = FSO.OpenTextFile(FilesList, 2)
    AllText = Replace(AllText, FileName, "", 1, -1, 1)
    AllText = Replace(AllText, vbNewLine & vbNewLine, vbNewLine, 1, -1, 1)
    oTextFile.Write AllText
    oTextFile.Close
  End If
Loop

OTF.Close
Set oTextFile = Nothing
Set OTF       = Nothing
Set FSO       = Nothing
WScript.Quit
При настройке цвета указываем Script Content Plugin, колонка Result = 1.
Аватара пользователя
A.N.T.
Сообщения: 190
Зарегистрирован: Сб июл 01, 2006 08:50

Сообщение A.N.T. »

Сейчас попробую :)
Попробовал
2Batya
<Added> Спасибо конечно за идею.., но неудобно мне переключаться на колонки данном случае, если б удобно было я бы комментариями пользовался... Мне нужно просто тупо отметить цветом файл/папку позже вернуться к ней -> убрать цвет... + я не понял как должен цвет меняться, файлы в список FilesList.txt добавляются и...?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Гм...
По-порядку.
1. Настроил плагин, как описано выше.
2. Заходишь в Настройки - Цвет - Определить цвета для типов файлов - Добавить - Шаблон - Закладка "Плагины", плагин "script", свойство "Result", операция "=", значение "1" - Сохранить - "Отмеченные файлы-папки" - ОК - Выбрать этот шаблон - ОК - Выбрать цвет - ОК - Перетащить новое правило в самый верх - ОК - ОК.
3. На кнопки вешаешь 2 скрипта - для добавления в список и для удаления из него.
4. Выделяешь файлы, жмешь кнопку "Добавить в список" - должны выделиться указанным тобой цветом. Если не выделяется, попробуй перезайти в папку.

Колонки вообще не нужны. Забудь про них. Главное - сделать шаблон, используя плагин.
Аватара пользователя
A.N.T.
Сообщения: 190
Зарегистрирован: Сб июл 01, 2006 08:50

Сообщение A.N.T. »

Хых (как это я сразу не допёр, что нужно шаблон сделать)... :D Спасибо Batya, какой раз выручаешь... :) О таком решении я даже не догадывался...
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Для подобной цели можно использовать мой плаг WdxGlobalDiz (http://wincmd.ru/plugring/wdx_global_diz.html), правда с ним трудновато будет разобраться.
Аватара пользователя
Nik
Сообщения: 583
Зарегистрирован: Сб янв 01, 2005 13:00
Откуда: Киров
Контактная информация:

Сообщение Nik »

Это будет затруднительно. (попробуй сам)
А в чём, собственно, проблема?
Качественный хостинг.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Nik писал(а):А в чём, собственно, проблема?
Попробуй выставить 2260 год и посмотри, что получится. :)
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
Nik
Сообщения: 583
Зарегистрирован: Сб янв 01, 2005 13:00
Откуда: Киров
Контактная информация:

Сообщение Nik »

Попробуй выставить 2260 год и посмотри, что получится
Ну ладно, я погорячился (D1P меня поймет :) ). Можно использовать 2016 :)
Качественный хостинг.
Аватара пользователя
fa1con
Сообщения: 162
Зарегистрирован: Сб авг 19, 2006 00:33

Сообщение fa1con »

2batja
Поражаюсь твоей находчивости. Где ты находишь столько времени в этом разбираться?
Не знаю как у вас, но у меня после проделанного довольно заметно увеличилось время открытия каталога. Я так понимаю плагин запускает скрипт FilesInList.vbs для каждого директории. Это довольно долго. Поэтому пользоваться я этим не буду. Хотя идея помечать каталоги мне очень понравилась.

Чтоб избавиться от тормозов предлагаю переписать скрипты "добавления"/"удаления" так что б он дописывал/удалял в/из комментария выделенных файлов какую-то строчку ("№;%:% например). Тогда можно будет настроить выделения цветом по "комментарий содержит". Так намного быстрее и плагина не надо. Одно плохо – комменты поганятся.
Ответить