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

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Ответить
luckystarr
Сообщения: 30
Зарегистрирован: Вс мар 26, 2006 00:49

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

Сообщение luckystarr »

как это сделать?
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Re: скопировать несколько файлов с переименованием

Сообщение Tol!k »

luckystarr писал(а):как это сделать?
Прочитать эту тему
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

luckystarr писал(а):как это сделать?
Меня иногда выручает что-нибудь вроде ??Ren?????????Add.* вместо *.*
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sa, каков вопрос - таков ответ. Изображение

luckystarr
см. справку, фильтр по "Кнопка Опции".
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Завёл себе кнопку для копирования в другую панель с переименованием (с использованием возможностей TCFS2):

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "tcm(3101,1) delay(200) send(`~({F5}{DEL}{? 252}_old{ENTER})`, findwnd(`TInpComboDlg`))"
wcmicons.dll,45
Скопировать в другую панель с именем_old


-1
Если требуется не копирование, а перемещение (с переименованием), то команду 3101 нужно поменять на 906.

Add
Кнопка для копирования в ту же панель с переименованием:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "tcm(3100,1) delay(200) send(`~({F5}{DEL}{? 252}_old{ENTER})`, findwnd(`TCheckEditBox`))"
wcmicons.dll,45
Скопировать в ту же панель с именем_old


-1
Если требуется не копирование, а переименование, то команду 3100 нужно поменять на 1002.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

С появлением в TC11.00 параметров для команд cm_Copy, cm_RenMov, для копирования с переименованием можно обойтись без TCFS2:

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

TOTALCMD#BAR#DATA
cm_Copy
GT="%T????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????_old.*"
wcmicons.dll,45
Скопировать в другую панель с добавлением к именам _old


-1
Для копирования в ту же панель убрать %T.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

А можно ли сделать чтоб он в параметре

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

GT="%T????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????_old.*"
вместо _old (прописанного слова) брал слово из буфера обмена?

В справочнике покопался, не нашел.
Смотрел http://flint-inc.ru/tcinfo/all_cmd.ru.htm Параметры для панелей инструментов, пользовательских меню и команд.

Если нету такой возможности, то может есть она в ИГП? Там тоже такого параметра не нашел..
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Lnk писал(а):может есть она в ИГП? Там тоже такого параметра не нашел..
[X] Paste text from clipboard. (TC 10.51)
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

sa, большое спасибо!
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Lnk писал(а):А можно ли сделать чтоб он в параметре ... вместо _old (прописанного слова) брал слово из буфера обмена?
Можно организовать запрос этого слова.
Создаём em-команду (в файле usercmd.ini):

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

[em_Copy_Ask]
cmd=cm_Copy
param=GT="????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????_%A.*"
и пользуемся кнопкой:

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

TOTALCMD#BAR#DATA
em_Copy_Ask
?old
WCMICONS.DLL,62
Копировать с добавлением к именам суффикса old или другого по запросу


-1
Ответом на запрос может быть и вставка текста из буфера обмена (Ctrl+V).
В примере копирование делается в ту же панель (без %T).
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

sa
хмм, ну для меня много телодвижений все-таки.. работает норм.
А может просто мне Ctrl+V не нравится из-за задействования 2 рук(можно правда и мышью конечно, но тоже не по мне)..

Я себе так сделал:
в файле usercmd.ini

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

[em_X_MULTIRENAME]
cmd=MULTIRENAME==
param=clipb
кнопка

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

TOTALCMD#BAR#DATA
cm_SelectCurrentExtension, em_X_MULTIRENAME

C:\Program Files (x86)\Total Commander\WCMICON2.DLL,69
переименование из буфера


-1
В ИГП в шаблоне clipb проставлено [X]_[N]
Ну а перенос файла другой кнопкой.
Итог - тык на 2 кнопки одна за другой.

Но спасибо за инфу, поучительно в любом случае.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Lnk писал(а):много телодвижений все-таки.. работает норм.
Тем не менее это вариант в рамках темы. Здесь, не как в мультипереименовании: даже простую вставку текста перед именами файлов (добавление префикса) не видно, как осуществить.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

sa
это да, я когда увидел http://forum.wincmd.ru/viewpost.php?p=136458
попытался

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

TOTALCMD#BAR#DATA
cm_Copy
GT="%T%old_???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????.*"
, он сьедает в таком случае первые буквы и вместо них уже old_ идет.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Свершилось!

Новый механизм масок для целевых имён файлов:

*rest        Звёздочка перед текстом в именной части: текст будет дописан к имени. Пример: name.ext копируется с маской *_rest.* -> name_rest.ext
start**     Двойная звёздочка позволяет также указать префикс. Пример: name.ext копируется с маской start_**_rest.* -> start_name_rest.ext
start*?     Звёздочка с вопросом подставляет предшествующий текст, после чего продолжает обработку маски по традиционным правилам с заменой первых символов имени. Пример: name.ext копируется с маской start_*?do*_rest.* -> start_dome_rest.ext
Ответить