Страница 2 из 3

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

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

Добавлено: Вс фев 12, 2012 23:17
Avada
Flasher
Моё дело — предупредить.

Добавлено: Пн фев 13, 2012 11:07
Flasher
C TCMC (указать свой путь) побыстрей будет:

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

'=====================================================================
' Открытие выделенных папок/архивов в отдельных вкладках другой панели
' Параметр: %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

Добавлено: Пн фев 13, 2012 11:16
Avada
Flasher
Тоже успешно работает, хотя заметной разницы по скорости с предыдущей версией я, честно говоря, не уловил.

Добавлено: Пн фев 13, 2012 11:21
Flasher
Avada
Странно, у меня невооружённым глазом заметно. TCMC просто команды окну отправляет, а там по нескольку раз на короткое время вызывается процесс TC.

Добавлено: Пн фев 13, 2012 12:13
Avada
Flasher
Ну, не знаю... Вот сейчас ещё раз специально сравнил. Визуально — практически то же самое.

Добавлено: Ср фев 15, 2012 20:08
Tol!k
кнопка

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

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


Добавлено: Ср окт 24, 2018 18:28
LonerD
Tol!k писал(а):кнопка
А каким образом можно модифицировать этот вариант для случаев если каталог/архив имеет юникодное имя (иероглифы в имени, к примеру)?

Добавлено: Ср окт 24, 2018 18:39
Flasher
LonerD
Допустим:

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

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

1
Или так:

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

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

1

Добавлено: Ср окт 24, 2018 21:39
LonerD
Flasher писал(а):LonerD
Допустим:
Спасибо. Что-то совсем случайным образом работает - то в противоположной панели открывает, то в текущей, то вообще откроет только часть выделенных каталогов... (да и вариант от Tol!k тоже). Придётся команду вешать на скрипт.

Добавлено: Ср окт 24, 2018 21:43
Flasher
LonerD
По части — закавычил цикл. И с TCFS2 пример добавил. Проверь.
Открытие в разных панелях похоже на конфликт с резидентными скриптами. В стандартных условиях такого быть не должно, если ты, конечно, фокус в другую панель в процессе открытия сам не переставляешь.

Добавлено: Чт окт 25, 2018 00:45
LonerD
Flasher писал(а):По части — закавычил цикл. И с TCFS2 пример добавил. Проверь.
Открытие в разных панелях похоже на конфликт с резидентными скриптами.
То же самое поведение на рабочем тотале. То не все каталоги открываются, то открываются в той же панели. Только у меня нет резидентных скриптов :roll: Пока не представляю, из-за чего такое поведение. Видимо, какая-то настройка "тормозит" процесс открытия вкладок одна сразу за другой, они просто не успевают открыться все и с заданными параметрами...
Попробовал на чистом Тотале - чётко отрабатывают оба варианта.

==========

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

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

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; 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 (добавляется небольшая пауза между открытиями вкладок). Если плагин не используется, то скорее всего для быстроты работы эту строку можно удалить.

Добавлено: Чт окт 25, 2018 01:06
Flasher
LonerD писал(а):То же самое поведение на рабочем тотале.
На виртуальном? Там вообще не будет работать.
LonerD писал(а):они просто не успевают открыться все и с заданными параметрами...
Ну, ОК. А если ' start /b/high/wait ""' после do вставить?
LonerD писал(а):скрипт на AutoHotkey.
А чего не с cd-то? С ней же куда быстрее.

Добавлено: Чт окт 25, 2018 01:09
LonerD
Во, разобрался. Причина самая ожидаемая - TwinKey. :idea: Причём даже снять все галочки (отключить все функции) в настройках плагина - не вариант. Вышеуказанная проблема проявляется стабильно (10 каталогов выделяю - открывается штук 7-8 ). Только если удалить TwinKey (или отключить его через PluginsManager) - всё приходит в норму.
Flasher писал(а):
LonerD писал(а):То же самое поведение на рабочем тотале.
На виртуальном?
На моём настроенном с плагинами и всем прочим.
Flasher писал(а):А если ' start /b/high/wait ""' после do вставить?
Против лома нет приёма. Нет положительного эффекта))
Flasher писал(а):А чего не с cd-то? С ней же куда быстрее.
Вот такой получился....
Но каталоги с именами в юникоде у меня не открываются. Вижу, что в куске кода, отвечающем за работу CD, есть какая-то поддержка юникода (но смысл кода я не понимаю, не знаю почему не срабатывает).

Добавлено: Чт окт 25, 2018 03:54
Skif_off
LonerD
Тут не смотрели, как реализована работа с юникодом? Никаких проблем с cd и em-командами вроде не было (__ANSItoUTF8toANSI(), __CheckANSItoUTF8()).