Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Открытие выделенных файлов во вкладках
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
carlsonn



Joined: 04 Nov 2007
Posts: 11

Post (Separately) Posted: Wed Mar 12, 2008 01:10    Post subject: Открытие выделенных файлов во вкладках Reply with quote

Посдкажите, как можно выполнить следующие задачи:

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

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

Буду благодарен, если кто нибудь реализует это в с помощью vbs скриптика. Заранее спасибо!
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2199
Location: Москва, Россия

Post (Separately) Posted: Wed Mar 12, 2008 19:09    Post subject: Reply with quote

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
Back to top
View user's profile Send private message
carlsonn



Joined: 04 Nov 2007
Posts: 11

Post (Separately) Posted: Wed Mar 12, 2008 21:55    Post subject: Reply with quote

Огромное спа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

но, ничего не изменилось
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2199
Location: Москва, Россия

Post (Separately) Posted: Thu Mar 13, 2008 00:32    Post subject: Reply with quote

Я не учел, что путь к TC может содержать пробелы.
Исправил исходный скрипт.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
carlsonn



Joined: 04 Nov 2007
Posts: 11

Post (Separately) Posted: Thu Mar 13, 2008 01:19    Post subject: Reply with quote

Все просто отлично работает!!!
Огромное Вам спасибо!!!
Back to top
View user's profile Send private message
Vladimir77



Joined: 27 Feb 2006
Posts: 15

Post (Separately) Posted: Sun Feb 12, 2012 20:26    Post subject: Reply with quote

Замечательная функция. Всю жизнь этого не хватало.
Но можно сделать ещё лучше
Я считаю, что соответствующая кнопка должна находиться не в панели инструментов, а в контекстном меню мышки около выбранной папки - вот тогда она станет ещё удобнее
Ведь контекстное меню существенно удобнее панели инструментов
Удобство по моему в следующем
- контекстное меню всегда ближе к мышке
- контекстное меню может вметить больше команд, поскольку набор команд зависит от контекста
Скажу более. Мне кажется, что эта команда должна стать стандартной в будущей версии командера, потому что именно открывает преимущество файлменеджера с двумя панелями перед Виндовым эксплорером.

Но одновременно возник и вопрос.
Я не нашёл возможности настройки контекстного меню в TotalCommander
Почему ? Ведь программ, желающих его замусорить - куча.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 9024
Location: Россия, Саратов

Post (Separately) Posted: Sun Feb 12, 2012 20:36    Post subject: Reply with quote

Vladimir77
Через шесть лет после предыдущего своего поста было решено, что самый подходящий повод для нового поста — это оффтопный подъём темы четырёхлетней давности? Разумеется, теоретически обращаться можно к сколь угодно старой теме. Но — по делу.
Тратить время на объяснение достаточно элементарных вещей человеку, у которого в профиле указано programer, не буду. Вкратце же — следующее:
В-первых, используемое в TC контекстное меню не настраивается, о чём на форуме говорилось неоднократно.
Во-вторых кнопок в контекстном меню, как нетрудно догадаться, не бывает, там команды.
В-третьих, такие украшительства постов на форуме категорически не поощряются.
В-четвёртых, наконец, подобные рассуждения в данной теме, просвящённой абсолютно конкретной задаче, — вообще оффтоп и флуд.

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

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

Batya
Раз уж пошло такое дело, я посмотрел скрипт. Без дополнительного параметра, просто с %L. Если папки выделены в правой панели — её содержимое не изменяется, создаются вкладки в левой панели, последняя открывается. Если в левой — первая папка открывается справа, а остальные создаются слева (из них открывается последняя). Полагаю, что так быть не должно.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Vladimir77



Joined: 27 Feb 2006
Posts: 15

Post (Separately) Posted: Sun Feb 12, 2012 21:34    Post subject: Reply with quote

В любом случае команда очень хорошая, но найдена в ней небольшая ошибка.
Она работает по разному в левой и правой панели в случае, когда выбрано несколько папок.
Не все выбранные папки открываются в одной панели.
Будет время -постараюсь разобраться.

Лучше бы ссылку мне дали на обсуждение контекстного меню.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 9024
Location: Россия, Саратов

Post (Separately) Posted: Sun Feb 12, 2012 21:38    Post subject: Reply with quote

Vladimir77
Что она работает по-разному, я написал выше.
(Что касается контекстного меню — если очень интересно, существует поиск по форуму. И я уже предупредил насчёт оффтопа. С этим тут — всё.)
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 12949
Location: Москва

Post (Separately) Posted: Sun Feb 12, 2012 22:14    Post subject: Reply with quote

Насколько я понял, вам достаточно этого:
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
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 9024
Location: Россия, Саратов

Post (Separately) Posted: Sun Feb 12, 2012 22:29    Post subject: Reply with quote

Flasher
Здесь всё нормально, но с %COMMANDER_EXE% будет работать только в TC 8. В 7.5x надо заменить на %Commander_Path%\Totalcmd.exe.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 12949
Location: Москва

Post (Separately) Posted: Sun Feb 12, 2012 22:33    Post subject: Reply with quote

Avada
Да я как бы в курсе. Wink
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 9024
Location: Россия, Саратов

Post (Separately) Posted: Sun Feb 12, 2012 22:42    Post subject: Reply with quote

Flasher
Да что ты-то в курсе, я не сомневаюсь, но читать это будешь не только ты. Wink
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 12949
Location: Москва

Post (Separately) Posted: Sun Feb 12, 2012 22:47    Post subject: Reply with quote

Avada
Я полагаю, тогда это надо 2All, а не мне писать?
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 9024
Location: Россия, Саратов

Post (Separately) Posted: Sun Feb 12, 2012 23:02    Post subject: Reply with quote

Flasher
Я, в свою очередь, полагаю, что для всех потенциальных пользователей скрипта, за исключением счастливых обладателей ОС x64, вариант с %Commander_Path% пока что выглядит несколько более предпочтительным, поскольку не заставляет задумываться, для какой версии TC годится, а для какой нет. А если ты решил использовать новую переменную, то область применения в шапке отметить не помешает. Смотреть будут в первую очередь сам скрипт, а уж потом последующие посты.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group