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  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
ADWizard



Joined: 25 May 2021
Posts: 8

Post (Separately) Posted: Tue May 25, 2021 13:48    Post subject: Замена разделителя в параметрах, при создании кнопки Reply with quote

Всем привет! Есть программа которая занимается копированием. Из командной строки запускается так
Code:
"prog1.exe" <source path> <destination>
.
Пытаюсь создать кнопку для этой программы
Code:
TOTALCMD#BAR#DATA
"c:\Copy64.exe"
%P%N %T%N
c:\Copy64.exe
Copy64
c:\

-1
.
Кнопка работает и копирует текущий каталог/файл с одной панели на другую. Для копирования нескольких/выделенных элементов командная строка должна иметь вид
Code:
"prog1.exe" <source1 path;source2 path;....> <destination>
.
Сделал кнопку
Code:
TOTALCMD#BAR#DATA
"c:\Copy64.exe"
?%P%S "%T"
c:\Copy64.exe
Copy64
c:\

-1
.
Вывод получаю с разделителем пробел т.е.
"файл1" "файл2" "папка назначения", а нужен разделитель ';' т.е. "файл1";"файл2" "папка назначения".
Подскажите, как этого добиться?


Last edited by ADWizard on Tue May 25, 2021 15:19; edited 1 time in total
Back to top
View user's profile Send private message AIM Address
Avada



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

Post (Separately) Posted: Tue May 25, 2021 14:29    Post subject: Reply with quote

ADWizard
Во-первых, не очень понятно, зачем в TC для банального копирования (хоть одного объекта, хоть нескольких выделенных) из активной панели в неактивную понадобилась какая-то утилита, о которой я, например, не имею ни малейшего понятия (об используемым в ней синтаксисе и о том, чем вам не угодил пробел как разделитель, соответственно, тоже). Этот самый пробел на точку с запятой в стандартном функционале TC по передаче списка выделенных файлов в командную строку вы не замените никак (кроме как руками в самой строке, естественно).
Во-вторых (это уже по форме), согласно правилам форума в конце предложений должны ставиться точки, а ненужные пустые строки сообщения не украшают.
Недочёты в обеих кнопках не комментирую, поскольку гораздо больше меня занимает вопрос: зачем это всё вообще нужно делать в программе, которая сама по себе предназначена для нормального копирования файлов?
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
ADWizard



Joined: 25 May 2021
Posts: 8

Post (Separately) Posted: Tue May 25, 2021 15:40    Post subject: Reply with quote

Avada
Какое радушие. Слегка поправил оформление спасибо за указанные недочет. Коды кнопок даны для облегчения восприятия, не более того.
Далее по ответу. Не совсем понятно почему вы должны понимать и тем более знать эту программу (синтаксис которой я явно указан). Лично мне все равно какой разделитель, а вот этой программе нет. Ну и последнее, не обязательно было писать такой опус, раз ваш ответ ограничивается единственным предложением по теме
Quote:
Этот самый пробел на точку с запятой в стандартном функционале TC по передаче списка выделенных файлов в командную строку вы не замените никак (кроме как руками в самой строке, естественно).

За ответ, спасибо.
Back to top
View user's profile Send private message AIM Address
Avada



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

Post (Separately) Posted: Tue May 25, 2021 16:16    Post subject: Reply with quote

ADWizard
Вопросы мои совершенно разумны и логичны для тематического форума по Total Commander в силу самой специфики этой программы. А предложения, возможно, последовали бы и другие (скажем, с какими-то вариантами сторонней автоматизации), если бы вы предпочли форму более конструктивного диалога и уточнили саму задачу безотносительно к утилите. Впрочем, не хотите ничего пояснять — ваше дело.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
ADWizard



Joined: 25 May 2021
Posts: 8

Post (Separately) Posted: Tue May 25, 2021 16:48    Post subject: Reply with quote

Утилита написана на заказ во времена царя гороха. Имеет более 500 настроек копирования (ТС такое не под силу), имеет GUI и как бонус умеет работать с командной строкой (формат который я указал). К сожалению нет возможности переопределить командную строку т.к. ни конторы которая её писала, ни исходники не сохранились. Хотелка прикрутить утилиту к ТС реализована на 50%, на 100% не дано из-за указанного выше. Се-ля-ви. 50% тоже не плохо, хоть и накладывает ряд ограничений.
Back to top
View user's profile Send private message AIM Address
sa



Joined: 29 Apr 2009
Posts: 2377

Post (Separately) Posted: Tue May 25, 2021 17:01    Post subject: Reply with quote

ADWizard
Может, попробовать для 2-9 выделенных файлов суррогатный вариант, в котором %P%S заменить на %C1;%C2;%C3;%C4;%C5;%C6;%C7;%C8;%C9?
Не знаю, как сработает утилита, если выделено будет меньше 9 файлов: там в параметрах вылезут лишние ;.
Back to top
View user's profile Send private message
Avada



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

Post (Separately) Posted: Tue May 25, 2021 18:04    Post subject: Reply with quote

ADWizard
Более 500 настроек копирования — это звучит крайне интригующе. А посмотреть сие сокровище можно или на его распространение наложены ограничения?
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
ADWizard



Joined: 25 May 2021
Posts: 8

Post (Separately) Posted: Tue May 25, 2021 18:05    Post subject: Reply with quote

Спасибо за совет. Первое конструктивное предложение.
Проверил, работает но странно. Если исходные пути не содержат пробелов, то копируется нормально, если содержат, то не копируется. При этом одиночный каталог/файл копируется в любом случае.

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

Quote:
А посмотреть сие сокровище можно или на его распространение наложены ограничения?

К сожалению вы совершенно правы, наложено ограничение, т.к. за этот продукт были плачены хорошие деньги.
Back to top
View user's profile Send private message AIM Address
sa



Joined: 29 Apr 2009
Posts: 2377

Post (Separately) Posted: Tue May 25, 2021 18:12    Post subject: Reply with quote

ADWizard wrote:
Если исходные пути не содержат пробелов, то копируется нормально, если содержат, то не копируется.

Из-за кавычек, наверное, в которые TC заключает имена с пробелами…
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1201

Post (Separately) Posted: Tue May 25, 2021 19:28    Post subject: Reply with quote

ADWizard wrote:
Имеет более 500 настроек копирования

Но не умеет работать со списком файлов?

Попробуйте завернуть в VBScript, типа
Code:
Set WshShell = CreateObject("WScript.Shell")

Dim iMax = WScript.Arguments.Count - 1
Dim sList = """" & WScript.Arguments.Item(0) & """"

For iCount = 1 to iMax
    sList = sList & ";""" & WScript.Arguments.Item(iCount) & """"
Next

WshShell.Run """C:\Copy64.exe"" " & sList & " """ & WScript.Arguments.Item(iMax + 1) & """", 1, False

Сохранить как, например, Copy64.vbs, параметры те же - %P%S "%T"
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2568
Location: Большая деревня Москва

Post (Separately) Posted: Tue May 25, 2021 21:13    Post subject: Reply with quote

Avada wrote:
Более 500 настроек копирования — это звучит крайне интригующе. А посмотреть сие сокровище можно или на его распространение наложены ограничения?
Я знаю подобный продукт - Xxcopy, о котором я написал статью.
Я, любимый wrote:
Количество ключей точному подсчету не поддается, по моей оценке - около двухсот
Программа распространяется свободно, но с недавних пор проект закрыт. Что, впрочем, не мешает программой пользоваться.
Работа со списками, разумеется, есть, но для обработки и использования в ТС требуется легкая обработка скриптами, что я неоднократно и делал, например, так.
В запрашиваемом случае, пожалуй, тоже без скриптов не обойтись...
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
ADWizard



Joined: 25 May 2021
Posts: 8

Post (Separately) Posted: Wed May 26, 2021 09:35    Post subject: Reply with quote

Quote:
Из-за кавычек, наверное, в которые TC заключает имена с пробелами…

Увы нет, пробовал удаляя их вручную в диалоге.

Skif_off
Спасибо, но увы ошибка
Code:

Ошибка
строка 3
символ 10
предполагается наличие окончания инструкции
код 800а0401
Back to top
View user's profile Send private message AIM Address
sa



Joined: 29 Apr 2009
Posts: 2377

Post (Separately) Posted: Wed May 26, 2021 10:19    Post subject: Reply with quote

ADWizard wrote:
Увы нет, пробовал удаляя их вручную в диалоге.

А утилита копирует нормально несколько файлов с путями, содержащими пробелы (без привязки к способу указания параметров)?
Back to top
View user's profile Send private message
ADWizard



Joined: 25 May 2021
Posts: 8

Post (Separately) Posted: Wed May 26, 2021 11:51    Post subject: Reply with quote

sa
Да, вот такой бат вполне себе работает.
Code:
c:\copy64.exe  "D:\tm p1\EStaff;D:\tm p1\cer";"D:\tm p1\tmp.reg"  "C:\tmp\1"
pause


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

Нашел где проблема, после публикации кода.
Утилита каталоги воспринимает в общих кавычках, а файлы должны быть в персональных. Да уж. похоже тут все интересней чем предполагалось Confused

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

Skif_off
Quote:
Но не умеет работать со списком файлов?

Почему же, умеет, при том не просто список, а создаёт целый профиль со всеми настройками сразу который достаточно загрузить. Просто хотелось подружить ТС и её.

После экспериментов с бат файлами выяснилось, что если в путях источника есть пробелы командная строка должна выглядеть так
Code:
c:\copy64.exe  "D:\Источник 1\папка;D:\Источник 2\папка;D:\Источник 3\файл.ххх;"  "C:\Назначение\папка"
Back to top
View user's profile Send private message AIM Address
sa



Joined: 29 Apr 2009
Posts: 2377

Post (Separately) Posted: Wed May 26, 2021 12:34    Post subject: Reply with quote

ADWizard wrote:
если в путях источника есть пробелы командная строка должна выглядеть так

А с такой строкой
Code:
""D:\Источник 1\папка";"D:\Источник 2\папка";"D:\Источник 3\файл.ххх;""
не работает, случайно?
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  Next
Page 1 of 2

 
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