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 Previous  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
Flasher



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

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

Avada wrote:
Я, в свою очередь, полагаю, что для всех потенциальных пользователей скрипта, за исключением счастливых обладателей ОС x64, вариант с %Commander_Path% пока что выглядит несколько более предпочтительным, поскольку не заставляет задумываться, для какой версии TC годится, а для какой нет.
Совершенно не понял, при чём тут битность TC. В моём случае скрипт всегда пишется для актуальной версии (включая беты).

В описание условие добавлялось в других скриптах, но, ИМХО, для этого случая с поднятием древностей дописку можно опустить в расчёте на компетентного "зрителя".


Last edited by Flasher on Mon Feb 13, 2012 03:05; edited 1 time in total
Back to top
View user's profile Send private message
Avada



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

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

Flasher
Моё дело — предупредить.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Mon Feb 13, 2012 11:07    Post subject: Reply with quote

C TCMC (указать свой путь) побыстрей будет:
Code:
'=====================================================================
' Открытие выделенных папок/архивов в отдельных вкладках другой панели
' Параметр: %L
'=====================================================================
If WScript.Arguments.Count = 0 Then WScript.Quit
For Each Fold In Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll, vbNewLine)
If Fold > vbNullString Then
  CreateObject("WScript.Shell").Run """%COMMANDER_PATH%\Utils\TCMC\TCMC.exe"" cdst """" """ & Fold & """", 7, True
    WScript.Sleep 40
End If
Next
Back to top
View user's profile Send private message
Avada



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

Post (Separately) Posted: Mon Feb 13, 2012 11:16    Post subject: Reply with quote

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



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

Post (Separately) Posted: Mon Feb 13, 2012 11:21    Post subject: Reply with quote

Avada
Странно, у меня невооружённым глазом заметно. TCMC просто команды окну отправляет, а там по нескольку раз на короткое время вызывается процесс TC.
Back to top
View user's profile Send private message
Avada



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

Post (Separately) Posted: Mon Feb 13, 2012 12:13    Post subject: Reply with quote

Flasher
Ну, не знаю... Вот сейчас ещё раз специально сравнил. Визуально — практически то же самое.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Wed Feb 15, 2012 20:08    Post subject: Reply with quote

кнопка
Code:
TOTALCMD#BAR#DATA
%ComSpec% /c for /f "delims=" %# in
('type "%WL"') do "%%commander_path%%\totalcmd.exe" /o /s /t /r="%%#"
wcmicons.dll,83
Выделенные папки/архивы открыть в отдельных вкладках другой панели

1
-1

Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Wed Oct 24, 2018 19:28    Post subject: Reply with quote

Tol!k wrote:
кнопка

А каким образом можно модифицировать этот вариант для случаев если каталог/архив имеет юникодное имя (иероглифы в имени, к примеру)?
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Wed Oct 24, 2018 19:39    Post subject: Reply with quote

LonerD
Допустим:
Code:
TOTALCMD#BAR#DATA
%ComSpec% /c "for %# in
(%S) do "%%COMMANDER_EXE%%" /O /S /T /R="%P%%~#""
wcmicons.dll,83
Выбранные папки/архивы открыть в отдельных вкладках другой панели

1
Или так:
Code:
TOTALCMD#BAR#DATA
%ComSpec% /c "for %# in
(%S) do "%%COMMANDER_PATH%%\Utils\TCFS2\TCFS2.exe" /ef "tcd(,`%P%%~#`,ST)""
wcmicons.dll,83
Выбранные папки/архивы открыть в отдельных вкладках другой панели

1

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Wed Oct 24, 2018 22:57; edited 1 time in total
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Wed Oct 24, 2018 22:39    Post subject: Reply with quote

Flasher wrote:
LonerD
Допустим:

Спасибо. Что-то совсем случайным образом работает - то в противоположной панели открывает, то в текущей, то вообще откроет только часть выделенных каталогов... (да и вариант от Tol!k тоже). Придётся команду вешать на скрипт.
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Wed Oct 24, 2018 22:43    Post subject: Reply with quote

LonerD
По части — закавычил цикл. И с TCFS2 пример добавил. Проверь.
Открытие в разных панелях похоже на конфликт с резидентными скриптами. В стандартных условиях такого быть не должно, если ты, конечно, фокус в другую панель в процессе открытия сам не переставляешь.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Thu Oct 25, 2018 01:45    Post subject: Reply with quote

Flasher wrote:
По части — закавычил цикл. И с TCFS2 пример добавил. Проверь.
Открытие в разных панелях похоже на конфликт с резидентными скриптами.

То же самое поведение на рабочем тотале. То не все каталоги открываются, то открываются в той же панели. Только у меня нет резидентных скриптов Rolling Eyes Пока не представляю, из-за чего такое поведение. Видимо, какая-то настройка "тормозит" процесс открытия вкладок одна сразу за другой, они просто не успевают открыться все и с заданными параметрами...
Попробовал на чистом Тотале - чётко отрабатывают оба варианта.

==========

Заодно родился такой скрипт на AutoHotkey.

Code:
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Total Commander DreamLair                        ;
; Script: Open selected dirs/files in new tabs     ;
; Скрипт: Відкрити виділені файли/каталоги в нових вкладках
; Скрипт: Открыть выделенные файлы/каталоги в новых вкладках
; Script version: 1.0 (2018.10.25)                 ;
; Script author: LonerD                            ;
; Site: https://dreamlair.net                      ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Parameter:                                       ;
;  1) %WL (required)                               ;
;  2) T - open in target panel                     ;
;  3) D - open only directories                    ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;

#NoEnv
#NoTrayIcon
#SingleInstance force

if not ( WinExist("ahk_class TTOTAL_CMD") || WinActive("ahk_class TTOTAL_CMD") )
  ExitApp
EnvGet, commander_exe, commander_exe

if 0 < 1
  ExitApp
Filelist = %1%
Panel = %2%
OnlyDirs = %3%

TagPanel := Panel = "T" ? "/R=" : "/L="

Loop, Read, % Filelist
{
  if !InStr(FileExist(A_LoopReadLine), "D") & ( OnlyDirs = "D" )
    Continue
  RunWait, % commander_exe " /O /S /T " TagPanel """" A_LoopReadLine """"
  Sleep, 200
}

ExitApp


==========

Второй вариант с открытием через отправку TC команды CD.

==========
PS. Строка "Sleep, 200" нужна для стабильной работы с установленным плагином TWinKey (добавляется небольшая пауза между открытиями вкладок). Если плагин не используется, то скорее всего для быстроты работы эту строку можно удалить.
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α


Last edited by LonerD on Thu Oct 25, 2018 03:04; edited 2 times in total
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Thu Oct 25, 2018 02:06    Post subject: Reply with quote

LonerD wrote:
То же самое поведение на рабочем тотале.
На виртуальном? Там вообще не будет работать.
LonerD wrote:
они просто не успевают открыться все и с заданными параметрами...
Ну, ОК. А если ' start /b/high/wait ""' после do вставить?
LonerD wrote:
скрипт на AutoHotkey.
А чего не с cd-то? С ней же куда быстрее.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Thu Oct 25, 2018 02:09    Post subject: Reply with quote

Во, разобрался. Причина самая ожидаемая - TwinKey. Idea Причём даже снять все галочки (отключить все функции) в настройках плагина - не вариант. Вышеуказанная проблема проявляется стабильно (10 каталогов выделяю - открывается штук 7-8 ). Только если удалить TwinKey (или отключить его через PluginsManager) - всё приходит в норму.

Flasher wrote:
LonerD wrote:
То же самое поведение на рабочем тотале.
На виртуальном?

На моём настроенном с плагинами и всем прочим.

Flasher wrote:
А если ' start /b/high/wait ""' после do вставить?

Против лома нет приёма. Нет положительного эффекта))

Flasher wrote:
А чего не с cd-то? С ней же куда быстрее.

Вот такой получился....
Но каталоги с именами в юникоде у меня не открываются. Вижу, что в куске кода, отвечающем за работу CD, есть какая-то поддержка юникода (но смысл кода я не понимаю, не знаю почему не срабатывает).
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Thu Oct 25, 2018 04:54    Post subject: Reply with quote

LonerD
Тут не смотрели, как реализована работа с юникодом? Никаких проблем с cd и em-командами вроде не было (__ANSItoUTF8toANSI(), __CheckANSItoUTF8()).
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 Previous  1, 2, 3  Next
Page 2 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