Страница 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 пример добавил. Проверь.
Открытие в разных панелях похоже на конфликт с резидентными скриптами.
То же самое поведение на рабочем тотале. То не все каталоги открываются, то открываются в той же панели. Только у меня нет резидентных скриптов

Пока не представляю, из-за чего такое поведение. Видимо, какая-то настройка "тормозит" процесс открытия вкладок одна сразу за другой, они просто не успевают открыться все и с заданными параметрами...
Попробовал на чистом Тотале - чётко отрабатывают оба варианта.
==========
Заодно родился такой
скрипт на 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.

Причём даже снять все галочки (отключить все функции) в настройках плагина - не вариант. Вышеуказанная проблема проявляется стабильно (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()).