В этой теме Вы можете высказывать идеи о каких-либо кнопках. Вы можете описать какую хотелось бы иметь кнопку и возможно найдутся те, кто подскажет как её сделать. Большая просьба чётко описывать задачу, от этого будет зависеть качество её решений
Задача: скопировать\переместить один на другой с заменой ВСЕГО.
Ну, если надо заменить( скопировать\переместить) содержимое одной папки точной копией содержимого другой, то попробуйте такую кнопку (позаимствовал принцип работы из моей кнопки для быстрой замены папок из бэкапа).
Код
TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe imgpr=1 delss=PS<%T%M>||1 copys=FOLDC<%L!!0!!0>||%T%M Wcmicons.dll,97 в папке другой панели создать точную копию содержимого папки под курсором
-1
Данной кнопке всё равно, какие файлы в папке другой панели, содержимое просто заменится начисто на содержимое папки под курсором.
Andrey_A, предлагаю внести в TCIMG представленное chip642
Цитатаchip642 ()
Прописать шаблоны диалогов в TCIMG.lng (или в TCIMGU.lng)
Код
InputBox86=Назначение атрибутов|Введите со знаком "+" в начале строки нужные атрибуты(+RASH), где:@CRLF@CRLFR - только для чтения@CRLFA - архивный@CRLFS - системный@CRLFH - скрытый||300|220
InputBox87=Снятие атрибутов|Введите со знаком "-" в начале строки нужные атрибуты(-RASH), где:@CRLF@CRLFR - только для чтения@CRLFA - архивный@CRLFS - системный@CRLFH - скрытый||300|220 Shape19=Назначение атрибутов
1. Если в каталоге назначения нет папки с именем исходного каталога, то копируется содержимое исходного каталога, что понятно. Но вот результат непонятен мне пока - буду посмотреть ещё. скрин 1
2. Если невозможно удалить каталог в панели назначения (например, я забыл, что некоторые файлы используются системой), то происходит полное игнорирование этих файлов. Но затем всплывают ошибки в запущенных программах (например так: невозможно определить путь E:\TEMP\Name\TC IMAGE\AkelFiles\Tools\CLCL\CLImage\history.dat) Это тоже понятно. Как обойти - надо думать.
3. Всплывающий процессбар подвисает, если находится не поверх всех окон. Операция всё-же проводится, но заметно дольше. Заставить бы его быть всегда сверху "по-умолчанию". Это, наверное, вопрос к Андрею. скрин
В связи с этим еще вопрос: chip642, в параметрах твоей кнопки я не увидел запуска процессбара, где спрятано?
P.S. Возможно, я слишком назойлив в обсуждении проблемы, которая только меня интересует. Извините, если что не так, плииз. Пишите, звоните.
1. Если в каталоге назначения нет папки с именем исходного каталога, то копируется содержимое исходного каталога, что понятно.
simup, я эту кнопку дал прочитав это:
Цитатаsimup ()
Имеем два одноимённых "толстых" и "глубоких" каталога. Задача: скопировать\переместить один на другой с заменой ВСЕГО.
Если, неизвестно имеется ли в панели назначения идентичный каталог, то тут постановка вопроса должна была быть другой))). Можно, например такую кнопочку использовать
Код
TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe global xlist=%L||##<info=f13\%P%N> slist=FOLDC<"%tGLOBALXLIST<1>"!!1!!-1!!exe>||##path<6> sends=GLOBALSLIST<t>||&&[\r\n]+!!\!\! close=##GLOBALSENDS<1> delss=PS<"%tGLOBALXLIST<1>">||1 copys=FOLDC<%L!!0!!0>||"%tGLOBALXLIST<1>"\!!5 patht=%T%N||fold<> Wcmicons.dll,19 Копировать содержимое папки под курсором в панель назначения в одноименную папку , если такая имеется, если нет, то игнорировать копирование, с установкой курсора на папке в панели назначения
-1 -1
Цитатаsimup ()
Если невозможно удалить каталог в панели назначения (например, я забыл, что некоторые файлы используются системой)
Единственное, что пришло на ум, навскидку, перед очисткой папки, убить все процессы файлов.exe находящихся в этой папке, только потом очистить её и скопировать новое содержимое. Получилась такая кнопка:
Код
TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe global xlist=%L||##<info=f12\%P%N> slist=FOLDC<"%tGLOBALXLIST<1>"!!1!!-1!!exe>||##path<6> sends=GLOBALSLIST<t>||&&[\r\n]+!!\!\! close=##GLOBALSENDS<1> delss=PS<"%tGLOBALXLIST<1>">||1 copys=FOLDC<%L!!0!!0>||"%tGLOBALXLIST<1>"\!!5 patht=%T%N||fold<> Wcmicons.dll,97 Копирование содержимого папки под курсором в одноименную папку панели назначения, если таковая имеется, с предварительным завершением всех процессов исполняемых файлов находящихся в папке панели назначения , с предварительной очисткой всего содержимого, установка курсора на папку в панели назначения
Дас ист фантастиш!!! chip642, если перед тобой поставить задачу создать кнопку "сварить суп, испечь хлеб, заварить кофе и накрыть стол", то ты наверняка справишься! Пишите, звоните.
Сразу оговорюсь: всё, что сделано По моей просьбе меня УЖЕ ВПОЛНЕ УСТРАИВАЕТ, за что еще раз БОЛЬШОЕ СПАСИБО! Остальное - в порядке обсуждения и возможного улучшения функционала.
chip642, Действие твоей последней кнопки чё-то не такое :( Находит первый попавшийся процесс (в моём эксперименте было запущено 2 - clcl.exe и KillOK.exe) убивает его и заодно explorer! И ВСО!!! останавливается
Чуть повторюсь: отображение процесса (я обозвал прогрессбаром) существенно замедляет выполнение операции - где подредактировать, чтобы не всплывал?
simup У меня отрабатывает грамотно, запускаю три процесса из папки и все три он завершает, кстати, посмотри нет ли файла TCIMG.exe в этой папке, если есть, то тогда это всё объясняет. Исключим файл TCIMG.exe из списка процессов необходимых завершить, добавим, на всякий, паузу для спокойного завершения процессов, уберем прогресс бар, получим:
Код
imgpr=1 global xlist=%L||##<info=f13\%P%N> slist=FOLDC<"%tGLOBALXLIST<1>"!!1!!-1!!exe>||##path<6> sends=GLOBALSLIST<t>||&&[\r\n]+!!\!\! close=##GLOBALSENDS<1> delss=PS<"%tGLOBALXLIST<1>">||1 copys=FOLDC<%L!!0!!0>||"%tGLOBALXLIST<1>"\!!5||noprogres<> patht=%T%N||fold<>
или так (разные способы получения и передачи имени папки под курсором):
Код
imgpr=1 global xends=%N slist=FOLDC<"%tGLOBALXENDS<1>"!!1!!-1!!exe>||##path<6> sends=GLOBALSLIST<t>||&&[\r\n]+!!\!\! close=##GLOBALSENDS<1> delss=PS<"%tGLOBALXLIST<1>">||1 copys=FOLDC<%L!!0!!0>||"%tGLOBALXLIST<1>"\!!5||noprogres<> patht=%T%N||fold<>
chip642, пока я писал в акеле сообщение, ты всё уже сделал :)
chip642, всё верно, товарищ ГУРУ! Тогда первой должна быть команда на удаление такого файла в папке назначения, если таковой имеется. А получится кнопка универсальной? В том смысле, что, если нет такого файла?
Не удивляйся моим "глупым" вопросам. Я плохо улавливаю многие ньюансы утилиты. Например попытка добавить к параметрам твоей кнопки звук
привело к "несозданию" одноименной папки в панели назначения и копированию только содержимого иссходного каталога. Что не так? - не понимаю. И это только ОДИН пример. А уж в создании длинной строки параметров - для меня задача непосильная :( Потому и оброщаюсь к более осведомлённым людям.
Но вполне вероятно, что смогу пригодится в других вопросах :)
Например попытка добавить к параметрам твоей кнопки звук
А причём тут звук... Вы хотите создать папку в другой панели именем и расширением файла? :) Если да, то сама система это не даст - вот Вам эксперимент: нажмите F7 (создание папки) и введите там имя.расширения файла, который уже есть в этой папке. Цель создать папку? а теперь посмотрите что скажет на это система... Так что утилита такое сделать не сможет, т.к. система не даёт...
- нормально отрабатывает - команда сначала удаляет всё, потом создает каталог и в него копирует содержимое. хмм... это я наконфигурил наверное.. заменил все файлы TCIMG из релиза - заработало
P.S. Андрей, мы вроде тышшу лет на ТЫ или я "достал" всех? Пишите, звоните.
лучше использовать, если в панели назначения имеется аналогичная папка, она не создаст папку идентичную папке под курсором, в случае отсутствия папки, если курсор не на объекте, то она скопирует всё содержимое в панель назначения, если курсор на файле то вообще ничего и никуда не скопирует, если курсор не на одноименной папке, то скопирует, без очистки, в нее содержимое, эта кнопка создавалась для возврата бэкапов, где точно известно о наличии папки с таким-то именем, поэтому лучше использовать более точные команды
Код
или я "достал" всех?
Напротив, мы за любое общение. Лично я, чем смогу помогу, но я еще только учусь....
Лично я, чем смогу помогу, но я еще только учусь....
ЦитатаAndrey_A ()
Я тоже ))
Анекдот: Два "ученика" (таких, как вы) решают бытовую задачу Первый говорит: Вот представь, что у тебя в кармане 1000 рублей... Второй перебивает его: Погоди, давай для ровного счета я представлю, что у меня 1024 рубля? .... [/off]