Показ всех файлов в выделенных каталогах. Возможно?

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

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

Vlad7
Сообщения: 66
Зарегистрирован: Вс сен 30, 2007 14:03

Показ всех файлов в выделенных каталогах. Возможно?

Сообщение Vlad7 »

Есть команда cm_DirBranch, позволяющая вывести списком все файлы, содержащиеся в текущем каталоге.

Есть ли способ отображения таким же образом, как это делает команда cm_DirBranch, содержимого только выделенных каталогов?
cluster
Сообщения: 82
Зарегистрирован: Вт май 26, 2009 15:25

Сообщение cluster »

Переносишь выделенные каталоги во временую директорию и жмёшь там CTRL+B. Потом каталоги ложишь на место.
Vlad7
Сообщения: 66
Зарегистрирован: Вс сен 30, 2007 14:03

Сообщение Vlad7 »

Спасибо! Как вариант, но не всегда удобно если, например, папка каким-либо образом защищена от копирования или удаления.

Иные способы возможны?

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

Сообщение CaptainFlint »

Vlad7
Если система NTFS, то создаёшь где-нибудь пустой каталог, бросаешь туда ссылки на выделенные каталоги. Дальше — то же самое, что и в варианте от cluster.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Vlad7
Сообщения: 66
Зарегистрирован: Вс сен 30, 2007 14:03

Сообщение Vlad7 »

CaptainFlint писал(а):Vlad7
Если система NTFS, то создаёшь где-нибудь пустой каталог, бросаешь туда ссылки на выделенные каталоги. Дальше — то же самое, что и в варианте от cluster.
Не работает. При нажатии не происходит ничего.

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

Сообщение CaptainFlint »

Vlad7 писал(а):При нажатии не происходит ничего.
Я ничего не понял. При нажатии чего не происходит ничего? Где это нажимается? Что именно было проделано и как оно было проделано?
Почему же, ё-моё, ты нигде не пишешь "ё"?
Vlad7
Сообщения: 66
Зарегистрирован: Вс сен 30, 2007 14:03

Сообщение Vlad7 »

CaptainFlint писал(а): Я ничего не понял. При нажатии чего не происходит ничего? Где это нажимается? Что именно было проделано и как оно было проделано?
Действовал, исходя из данных слов:
CaptainFlint писал(а):Vlad7
Если система NTFS, то создаёшь где-нибудь пустой каталог, бросаешь туда ссылки на выделенные каталоги. Дальше — то же самое, что и в варианте от cluster.
cluster писал(а):Переносишь выделенные каталоги во временую директорию и жмёшь там CTRL+B. Потом каталоги ложишь на место.

Последовательность действий была такова:

1. Создал пустой каталог (на диске с файловой системой NTFS).
2. Разместил в нем ссылки (т.е. - ярлыки, они же файлы с расширением lnk. я правильно понял?) на выделенные папки (те самые, содержимое которых нужно отобразить).
3. Находясь в созданном каталоге, содержащем ссылки, нажал CTRL+B. Никаких изменений не произошло. Т.е., будто ничего не нажималось вовсе.
4. Тогда выбрал через главное меню ТС команду "Вид-Показать все файлы без каталогов" (в моей версии 7.01 и варианте перевода это выглядит так) и запустил ее. Снова никаких изменений.

Я все правильно понял и делал?
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Vlad7 писал(а):т.е. - ярлыки, они же файлы с расширением lnk. я правильно понял?
Нет, неправильно. Ярлыки — это ярлыки, ссылки — это ссылки. Ярлыкам ведь пофиг, на какой файловой системе жить. Если б я говорил про них, NTFS была бы не нужна. Речь шла о символических ссылках. Подробнее см. программу NTFS Links (особенно, справку к ней, т.к. есть важные аспекты, которые необходимо учитывать при работе со ссылками, иначе можно потерять данные).
Почему же, ё-моё, ты нигде не пишешь "ё"?
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Для решения поставленной задачи предлагаю скрипт с использованием TCWSHelp:

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

'  File:         IgnoreTempList.vbs
'  Description:  Создаёт временный список исключений, состоящий из невыделенных в панели файлов/каталогов.
'     Выделенные файлы/каталоги остаются видимыми, а невыделенные исключаются из показа.
'     При каждом вызове скрипта происходит переключение между видимой и невидимой частями панели,
'    при этом выделенные файлы, (если они имеются), "перемещаются" из одной части в другую.
'     Для прекращения действия временного списка следует вызвать скрипт при отсутствии невыделенных
'    файлов,(то есть, если выделены все или выделять нечего) или вызвать внутреннюю команду
'    "Использовать список исключений файловых имён: вкл/выкл" (cm_SwitchIgnoreList). В противном случае,
'    временный список будет действовать до конца сеанса TC.
'     При наличии в TC пользовательского (постоянного) списка исключений, его содержимое добавляется
'    во временный.
'  Parameters:   Нет
'  Requirements: WSH Helper for TC by Volniy
'  Installation: Создайте для скрипта, например, кнопку на панели инструментов TC
'  Autor:        sa

Option Explicit
Dim WSH, FSO, TCS, IgFile, IgTempFile, IgPath, IgPathExp, IgEnabled, MsgStr, S, S_exp, F1, IgSize, MsgMode
Set WSH = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TCS = CreateObject("TCScript.Helper")
'========== Изменяемые параметры ===============================================
'Режим информационных сообщений: 2 -назойливый, 1 -щадящий, 0 -без сообщений
MsgMode = 2
'===============================================================================
TCS.LockTC True
IgFile = "tcignore.txt"
IgTempFile = "tempignore.txt"
IgPath = "%COMMANDER_PATH%\"
IgPathExp = TCS.TCPath & "\"
IgEnabled = TCS.INIRead (TCS.MainINI, "Configuration", "IgnoreListFileEnabled", 0)
MsgStr = ""
IgSize = 0
S = TCS.INIRead (TCS.MainINI, "Configuration", "IgnoreListFile", 0)
S_exp = WSH.ExpandEnvironmentStrings(S)
If FSO.FileExists(S_exp) Then
  IgPath = Left(S, InStrRev(S,"\"))
  IgPathExp = Left(S_exp, InStrRev(S_exp,"\"))
  IgFile = Right(S,len(S)-len(IgPath))
  IgSize =  FSO.GetFile(S_exp).size
else
  Set F1 = FSO.CreateTextFile(IgPathExp & IgFile, True)
  F1.Close
  Set F1 = Nothing
end if
TCS.SendCommand (3321) 'cm_ExchangeSelBoth
TCS.SendCommand (530) 'cm_SaveSelection
TCS.SendCommand (480) 'cm_IgnoreConfig
TCS.SendKeystroke "+{TAB 6}{ENTER}010{ENTER}{LEFT}{TAB 4}{ENTER}"
if FSO.GetBaseName(TCS.INIRead (TCS.MainINI, "Configuration", "IgnoreListFile", 0)) = "010" then
  FSO.CopyFile IgPathExp & IgFile, IgPathExp & IgTempFile
  TCS.INIWrite TCS.MainINI , "Configuration", "IgnoreListFile", IgPath & IgTempFile
  TCS.SendCommand (529) 'cm_RestoreSelection
  TCS.SendCommand (480) 'cm_IgnoreConfig
  TCS.SendKeystroke "+{TAB 5}{ENTER}{TAB 2}{ENTER}"
  TCS.INIWrite TCS.MainINI, "Configuration", "IgnoreListFile", IgPath & IgFile
  if IgEnabled = 0 then MsgStr = "Задействована функция исключений файловых имён."
  if MsgMode = 2 then MsgStr = MsgStr & chr(13) & "Создан и применён временный список исключений."
else
  MsgStr = "Невыделенных файлов/каталогов не найдено."
  if IgEnabled = 1 then
    TCS.SendCommand (2922) 'cm_SwitchIgnoreList
    if IgSize > 0 then
      TCS.SendCommand (2922) 'cm_SwitchIgnoreList
      MsgStr = MsgStr & chr(13) & "Используется постоянный список исключений."
    else
      MsgStr = MsgStr & chr(13) & "Действие функции исключений файловых имён прекращено."
    end if
  end if
end if
if MsgMode > 0 and MsgStr <> "" then MsgBox MsgStr, vbSystemModal, "IgnoreTempList.vbs"
TCS.LockTC False
Set WSH = Nothing
Set FSO = Nothing
Set TCS = Nothing
Wscript.Quit
Его можно повесить на кнопку:

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

TOTALCMD#BAR#DATA
Диск:\путь\к\файлу\IgnoreTempList.vbs

WCMICONS.DLL,34
Временный список исключений (добавить невыделенные на панели файлы/каталоги к постоянному списку исключений)


-1
Диск и путь к файлу IgnoreTempList.vbs нужно заменить на свои.

Применение: выделить интересующие каталоги, вызвать скрипт, нажать Ctrl-B. Для возврата нажать Ctrl-B, выделить все каталоги, вызвать скрипт.
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

Vlad7
Не совсем DirBranch, но очень близко.

Запускаешь поиск всех файлов в выделенных каталогах, результат поиска посылаешь в панель.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

До кучи еще один способ, с помощью этого скрипта.
Выделяешь директории, перетаскиваешь их крысой на панель (появляются соответствующие вкладки), переходишь в ту панель и запускаешь скрипт. Остается ввести то, что, собственно, ищем.

Способ VadiMGP попроще будет, зато мой прикольней.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

VadiMGP писал(а):Запускаешь поиск всех файлов в выделенных каталогах, результат поиска посылаешь в панель.
Для пущего сходства можно исключить при поиске на вкладке Дополнительно > Атрибуты опцию Каталог. В плюсах такого способа возможность сохранения результатов поиска на вкладке в отличии от DirBranch.
VadiMGP писал(а):Не совсем DirBranch, но очень близко.
А есть минусы у такого способа? Большее количество нажатий клавиш не считаем (этот процесс можно и автоматизировать).
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

sa писал(а):А есть минусы у такого способа? Большее количество нажатий клавиш не считаем (этот процесс можно и автоматизировать).
Есть. В силу ограниченности функциональности самой панели результатов поиска. Эту панель нельзя, в частности, использовать как каталог-получатель, на ней нельзя создать каталог и т.д.
Даже самая богатая фантазия
Не представит себе наши безобразия.
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

sa писал(а):А есть минусы у такого способа?
Есть. Кроме указанных выше надо помнить, что в панели результатов поиска нет понятия "текущий каталог". То есть, если ты, например, предполагал запускать кнопки с параметром %Р, то возможны проблемы.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

VadiMGP писал(а):
sa писал(а):А есть минусы у такого способа?
Есть. Кроме указанных выше надо помнить, что в панели результатов поиска нет понятия "текущий каталог". То есть, если ты, например, предполагал запускать кнопки с параметром %Р, то возможны проблемы.
Ну тогда уж до кучи давайте и минусы способа с использованием скрипта (с временным списком исключений) обсудим. Кстати скрипт можно применять и вне решаемой задачи: я пользуюсь им, когда надо на время избавиться на панели от ненужных каталогов/файлов. Чтобы "вернуть" их обратно, просто нажимаю кнопку "Использовать список исключений файловых имён: вкл/выкл".
Итак, минусы: 1. Не встроенная функция TC, к тому же требует наличия WSH Helper.
2....
Ответить