Описание скриптов движения по дереву |
Что такое "движение вверх/вниз по дереву директорий"? Проще всего ответить на этот вопрос, изучая файл treeinfo.wc, создаваемый по умолчанию в корне каждого логического диска. Чтобы найти их, можно сделать следующее:
Если поиск завершился неудачно, это значит одно из двух. Либо вы никогда не выдавали команды семейства cm_SrcTree и команду cm_CDtree (Alt+F10). Либо в вашем файле конфигурации wincmd.ini присутствуют ключи TreeFileLocation и TreeFileLocationE с ненулевыми значениями.
Заставить Total Commander построить файл treeinfo.wc проще всего, нажав Alt+F10. Итак, указанный файл содержит все директории диска в алфавитном порядке - вот это и есть так называемый "directory structure order" - "порядок структуры директорий". Чтобы увидеть этот порядок воочию, переключитесь в Tree View, или выполните команду cm_CDtree (Alt+F10), или, наконец, выполните команды семейства "separate tree" (команды с номерами 3200...3205). Кстати отметим, что эти команды не создают treeinfo.wc и не нуждаются в нем.
Итак, под движением вверх по дереву мы будем понимать переход к предыдущей (соседней сверху) директории, и, соотсветственно, под движением вниз - к следующей (более нижней) директории. Вот для этого-то движения я и воспользовался плодотворной идеей Gregory и написал свои скрипты. В чем же преимущество скриптов перед Tree View?
Поднимаясь по дереву в структуре, вы рано или поздно достигнете корня. Повторное исполнение скрипта позволит после подтверждения перейти к предыдущему диску. Таким образом, многократно исполняя один скрипт, можно пройти все директории на диске, не пропуская ни одной. Затем пройти обратным путем с помощью другого скрипта. Естественно, при достижении при движении вниз последней директории вы получите приглашение к переходу на следующий диск.
Мне раньше часто приходилось жалеть, что для перехода в соседнюю (скажем, нижнюю) директорию приходится сначала бессчетное число раз переходить в родительскую, то есть вверх по дереву, а затем столь же утомительно спускаться по другой ветке. Теперь достаточно одного нажатия клавиши или одного щелчка крысы. При тестировании скриптов я много нового узнал о своих дисках.
Чм же отличаются скрипты, когда нужно вызывать один или другой?
Скрипты TreeDownCmd и TreeUpCmd, как видно из названия, для построения списка "соседних" директорий используют внутреннюю команду dir, то есть не нуждаются во внешних программах. Правда, скрипты некорректно обрабатывают имена с символами кириллицы, по крайней мере, в англоязычной Windows. Отметим, что передать параметры "%p", "%n" из Total Commander в скрипт можно обычным образом.
Воспользовавшись советом Gregory, я присвоил вызову скриптов клавиши Alt+PgDn и Alt+PgUp.
Скрипты TreeDownX и TreeUpX для построения списка используют возможности программы Xxcopy (о ней я написал здесь). То есть для этого необходимо ее как минимум скачать, установить и прописать путь к ней в коде скрипта. Зато эти скрипты работают чуть быстрее и не встречают никаких трудностей в обработке имен директорий с пробелами и/или с русскими символами.
Внимание: вызов скрипта происходит не так, как обычно! Например, если вы хотите вызывать его кнопкой Total Commander, нужно:
Скрипты TreeDownXMouse и TreeUpXMouse во многом похожи на предыдущие два и также опираются на XXcopy (о чем говорит символ "Х" в названии). Однако эти скрипты вообще не нуждаются в параметрах, передаваемых из Total Commander. Если кому интересно, имя текущего файла и текущей директории скрипт получает через буфер обмена (можете не беспокоиться за свои данные, после отработки скрипта содержимое буфера восстанавливается) и даже отправку сообщения файловым панелям. Ну и что с того? А то, что вызывать эти скрипты можно извне Total Commander. Одним из решений выступает вызов скриптов с панели (bar) PowerPro. Я так и сделал, и предлагаю свой файл конфигурации, который остается просто импортировать в PowerPro.
Второе решение, которым я также воспользовался - назначить движение операциям с мышкой. Я предпочитаю следующее: если колесо мыши крутануть вперед/назад, то происходит движение к предыдущей директории, при движении колеса назад/вперед - к следующей. Сделать это можно, вызвав в PowerPro окно Key/Mouse и затем нажав кнопку New. Далее действуем строго согласно скриншоту:
Далее нажимаем Clone и меняем имя скрипта на TreeUpXMouse и поле "Key/Mouse" - на "wheel forward/back"
Внимание! Скрипты TreeDownXMouse, TreeUpXMouse, TreeDownX и TreeUpX работают только с Xxcopy версией 3.0 или более свежей! Если вы используете более старую версию, лучше обновите Xxcopy, ну, или, в крайнем случае, используйте предыдущие версии скриптов:
TreeDownXMouse
TreeUpXMouse
TreeDownX
TreeUpX
Итак, выбирайте:
Вниз (+cmd) – TreeDownCmd
Вверх (+cmd) – TreeUpCmd
Вниз (+Xxcopy) – TreeDownX
Вверх (+Xxcopy) – TreeUpX
Вниз без параметров (+Xxcopy) – TreeDownXMouse
Вверх без параметров (+Xxcopy) – TreeUpXMouse
Вниз внутренними командами – TreeDownTC
Вверх внутренними командами – TreeUpTC
На главную |