Открытие выделенных файлов во вкладках
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2, 3  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Открытие выделенных файлов во вкладках Author: carlsonn PostPosted: Wed Mar 12, 2008 01:10
    —
Посдкажите, как можно выполнить следующие задачи:

1. Необходимо выделенные папки в одной панели открыть во вкладках противоположной панели (каждую папку в своей вкладке);

2. Описанные выше папки содержат архивный файл, необходимо при выполнении первой задачи открыть также содержащийся в них архивный файл, конечно если такое возможно. Файл во всех папках одинаков.

Буду благодарен, если кто нибудь реализует это в с помощью vbs скриптика. Заранее спасибо!

#2:  Author: BatyaLocation: Москва, Россия PostPosted: Wed Mar 12, 2008 19:09
    —
Code:
'======================================================================
' Открытие выделенных папок в отдельных вкладках противоположной панели
' Также сразу может быть открыта вложенная папка или архив.
'   Имя подпапки (архива) должно быть передано вторым параметром

' Параметры вызова из TC:
' %L {имя подпапки (архива)}

' Пример параметров:
' %L archive.zip
'======================================================================

Option Explicit
Dim Title, Mess, FSO, ListF, List, Fold, WSH, P, Add
' Проверяем параметры
Title = "Внимание!"

If WScript.Arguments.Count < 1 Then
  Mess = "Неправильно указаны параметры!"
  MessQuit
End If

Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
ListF   = WScript.Arguments(0)

If Not FSO.FileExists(ListF) Then
  Mess = "Неправильно указан файл-список обрабатываемых папок!"
  MessQuit
End If

If WScript.Arguments.Count > 1 Then
  Add = WScript.Arguments(1)
End If

List = Split(FSO.OpenTextFile(ListF).ReadAll, vbNewLine)
P = "/R="""
For Each Fold In List
  WSH.Run """%Commander_Path%\Totalcmd.exe"" /O /S /T /P=L " & P & Fold & Add & """" , 7, True
  P = "/L="""
Next
WSH.SendKeys "{TAB}"

Quit

Sub MessQuit
  MsgBox Mess, vbOKOnly + vbError, Title
  Quit
End Sub

Sub Quit
  Set FSO = Nothing
  Set WSH = Nothing
  Wscript.Quit
End Sub


Last edited by Batya on Thu Mar 13, 2008 00:30; edited 1 time in total

#3:  Author: carlsonn PostPosted: Wed Mar 12, 2008 21:55
    —
Огромное спаcибо, что откликнулись!
Но видимо я что то делаю не так...
Выделяю необходимые папки, потом жму кнопку выполнения скрипта и получаю следующую ошибку


вот кнопка (в данном случае без открытия архива, хотя с ним такая же ситуация)
Code:

TOTALCMD#BAR#DATA
"C:\Program Files\Total Commander\Utils\Script Helper\DemoScripts\openfolderintabs.vbs"
%L
C:\Program Files\Total Commander\Wcmiconz.dll,7
Open Selected Folders in Tabs
C:\Program Files\Total Commander\Utils\Script Helper\DemoScripts\

-1


пробовал менять
Code:
  WSH.Run "%Commander_Path%\Totalcmd.exe /O /S /T /P=L " & P & Fold & Add & """" , 7, True

на
Code:
  WSH.Run "C:\Program Files\Total Commander\Totalcmd.exe /O /S /T /P=L " & P & Fold & Add & """" , 7, True

но, ничего не изменилось

#4:  Author: BatyaLocation: Москва, Россия PostPosted: Thu Mar 13, 2008 00:32
    —
Я не учел, что путь к TC может содержать пробелы.
Исправил исходный скрипт.

#5:  Author: carlsonn PostPosted: Thu Mar 13, 2008 01:19
    —
Все просто отлично работает!!!
Огромное Вам спасибо!!!

#6:  Author: Vladimir77 PostPosted: Sun Feb 12, 2012 20:26
    —
Замечательная функция. Всю жизнь этого не хватало.
Но можно сделать ещё лучше
Я считаю, что соответствующая кнопка должна находиться не в панели инструментов, а в контекстном меню мышки около выбранной папки - вот тогда она станет ещё удобнее
Ведь контекстное меню существенно удобнее панели инструментов
Удобство по моему в следующем
- контекстное меню всегда ближе к мышке
- контекстное меню может вметить больше команд, поскольку набор команд зависит от контекста
Скажу более. Мне кажется, что эта команда должна стать стандартной в будущей версии командера, потому что именно открывает преимущество файлменеджера с двумя панелями перед Виндовым эксплорером.

Но одновременно возник и вопрос.
Я не нашёл возможности настройки контекстного меню в TotalCommander
Почему ? Ведь программ, желающих его замусорить - куча.

#7:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Feb 12, 2012 20:36
    —
Vladimir77
Через шесть лет после предыдущего своего поста было решено, что самый подходящий повод для нового поста — это оффтопный подъём темы четырёхлетней давности? Разумеется, теоретически обращаться можно к сколь угодно старой теме. Но — по делу.
Тратить время на объяснение достаточно элементарных вещей человеку, у которого в профиле указано programer, не буду. Вкратце же — следующее:
В-первых, используемое в TC контекстное меню не настраивается, о чём на форуме говорилось неоднократно.
Во-вторых кнопок в контекстном меню, как нетрудно догадаться, не бывает, там команды.
В-третьих, такие украшительства постов на форуме категорически не поощряются.
В-четвёртых, наконец, подобные рассуждения в данной теме, просвящённой абсолютно конкретной задаче, — вообще оффтоп и флуд.

Замечание за нарушение правил форума. Ненужные "красоты оформления" из поста убраны. И больше тут — никакого оффтопа.

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

Batya
Раз уж пошло такое дело, я посмотрел скрипт. Без дополнительного параметра, просто с %L. Если папки выделены в правой панели — её содержимое не изменяется, создаются вкладки в левой панели, последняя открывается. Если в левой — первая папка открывается справа, а остальные создаются слева (из них открывается последняя). Полагаю, что так быть не должно.

#8:  Author: Vladimir77 PostPosted: Sun Feb 12, 2012 21:34
    —
В любом случае команда очень хорошая, но найдена в ней небольшая ошибка.
Она работает по разному в левой и правой панели в случае, когда выбрано несколько папок.
Не все выбранные папки открываются в одной панели.
Будет время -постараюсь разобраться.

Лучше бы ссылку мне дали на обсуждение контекстного меню.

#9:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Feb 12, 2012 21:38
    —
Vladimir77
Что она работает по-разному, я написал выше.
(Что касается контекстного меню — если очень интересно, существует поиск по форуму. И я уже предупредил насчёт оффтопа. С этим тут — всё.)

#10:  Author: FlasherLocation: Москва PostPosted: Sun Feb 12, 2012 22:14
    —
Насколько я понял, вам достаточно этого:
Code:
'=====================================================================
' Открытие выделенных папок/архивов в отдельных вкладках другой панели
' Параметр: %L
'=====================================================================
With CreateObject("WScript.Shell")
  For Each Fold In Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll, vbNewLine)
    .Run """%COMMANDER_EXE%"" /O /S /T /R=""" & Fold & """", 7, True
  Next
  .SendKeys "{TAB}"
End With

#11:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Feb 12, 2012 22:29
    —
Flasher
Здесь всё нормально, но с %COMMANDER_EXE% будет работать только в TC 8. В 7.5x надо заменить на %Commander_Path%\Totalcmd.exe.

#12:  Author: FlasherLocation: Москва PostPosted: Sun Feb 12, 2012 22:33
    —
Avada
Да я как бы в курсе. Wink

#13:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Feb 12, 2012 22:42
    —
Flasher
Да что ты-то в курсе, я не сомневаюсь, но читать это будешь не только ты. Wink

#14:  Author: FlasherLocation: Москва PostPosted: Sun Feb 12, 2012 22:47
    —
Avada
Я полагаю, тогда это надо 2All, а не мне писать?

#15:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Feb 12, 2012 23:02
    —
Flasher
Я, в свою очередь, полагаю, что для всех потенциальных пользователей скрипта, за исключением счастливых обладателей ОС x64, вариант с %Commander_Path% пока что выглядит несколько более предпочтительным, поскольку не заставляет задумываться, для какой версии TC годится, а для какой нет. А если ты решил использовать новую переменную, то область применения в шапке отметить не помешает. Смотреть будут в первую очередь сам скрипт, а уж потом последующие посты.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2, 3  Next  :| |:
Page 1 of 3

Powered by phpBB © 2001, 2005 phpBB Group