Мультикопирование
Мультикопирование
MultuCopy
Сделайте пожалуйста такую фичу.
Есть у меня скрипты (один и тот же файл), который должен быть в каждой папке (а папок этих - тьма!). Вот было бы здорово еслиб в одной панельке я указал нужный файл (или файлы), а в другой - папки куда это добро скопировать одним нажатием. Наверное не очень сложная примочка. Пользуюсь пока одной утилитой для этого, но прям скажем, не очень удобная. Встройте такую фичу в фар, пожалуйста.
Заранее спасибо.
Сделайте пожалуйста такую фичу.
Есть у меня скрипты (один и тот же файл), который должен быть в каждой папке (а папок этих - тьма!). Вот было бы здорово еслиб в одной панельке я указал нужный файл (или файлы), а в другой - папки куда это добро скопировать одним нажатием. Наверное не очень сложная примочка. Пользуюсь пока одной утилитой для этого, но прям скажем, не очень удобная. Встройте такую фичу в фар, пожалуйста.
Заранее спасибо.
Re: Мультикопирование
внезапно, фича встроена в фар еще при царе горохе
hint: Process multiple destinations и макрос
hint: Process multiple destinations и макрос
Re: Мультикопирование
Это где через запятую мне надо двести пятнадцать разноименных папок вписать? Действительно, внезапно.
Вы мну взбодрили .
Если я ошибаюсь, дайте еще хинта. Мне хочется просто выбранные файлы в выбранные папки одним нажатием посылать.
Вы мну взбодрили .
Если я ошибаюсь, дайте еще хинта. Мне хочется просто выбранные файлы в выбранные папки одним нажатием посылать.
Re: Мультикопирование
Code: Select all
macro
Key="AltF5"
Descr="Copy to selected folders on passive panel"
Area="Shell"
{{
$if (APanel.Plugin || (PPanel.SelCount<1) || PPanel.Plugin)
F5
$Exit
$end
%dest="";
%i=1;
%p=PPanel.Path+"\\";
$while (%i<=PPanel.ItemCount)
$If (panel.item(1,%i,8) && (panel.item(1,%i,2) & 16))
%s=%p+panel.item(1,%i,0);
$if (index(%s,";")>=0 || index(%s,",")>=0)
%s="\""+%s+"\"";
$end
%dest=%dest+%s+";";
$End
%i=%i+1;
$End
F5
$if (!Dialog || (Dlg.Info.Id!="FCEF11C4-5490-451D-8B4A-62FA03F52759" && Dlg.Info.Id!="{FCEF11C4-5490-451D-8B4A-62FA03F52759}"))
$Exit
$end
Del print(%dest)
AltM // english interface!
Add
AltO // english interface!
}}
Last edited by Maximus5 on Wed 25 Apr, 2012 13:35, edited 1 time in total.
Re: Мультикопирование
А зачем «$if (!Dialog || Dlg.Info.Id!=»? Допустим, я во втором ФАРе (или что там отсекается, во всяком случае пока не закомментил, не заработало) тоже хочу такую фичу.
Пользуюсь ФАРом больше 20 лет © собирательный.
- John Doe
- Бюрократ
- Posts: 13855
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: Мультикопирование
Wave
Тогда вам стоит разобраться для чего служит Dlg.Info.Id, и найти ему замену для Far 2.
Это элементарно.
Тогда вам стоит разобраться для чего служит Dlg.Info.Id, и найти ему замену для Far 2.
Это элементарно.
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: Мультикопирование
он был в far2. причём очень давно. другой вопрос, что у конкретного диалога может не быть гуида.John Doe wrote:Wave
Тогда вам стоит разобраться для чего служит Dlg.Info.Id, и найти ему замену для Far 2.
Re: Мультикопирование
расширенный
Code: Select all
macro
Key="F5 F6" Cond="PanelType:0"
Descr="Autoappend single file name to the Copy/Move destination or Copy to selected folders on passive panel"
{{
$if (Key(#Akey)=="F5" && !APanel.Plugin && (PPanel.SelCount>=1) && !PPanel.Plugin)
%dest="";
%i=1;
%p=PPanel.Path+"\\";
$while (%i<=PPanel.ItemCount)
$If (panel.item(1,%i,8) && (panel.item(1,%i,2) & 16))
%s=%p+panel.item(1,%i,0);
$if (index(%s,";")>=0 || index(%s,",")>=0)
%s="\""+%s+"\"";
$end
%dest=%dest+%s+";";
$End
%i=%i+1;
$End
$if (%dest!="")
F5
// Far3 - w/o brackets
$if (!Dialog || (Dlg.Info.Id!="FCEF11C4-5490-451D-8B4A-62FA03F52759" && Dlg.Info.Id!="{FCEF11C4-5490-451D-8B4A-62FA03F52759}"))
$Exit
$end
Del print(%dest)
AltM // english interface!
Add
AltO // english interface!
$Exit
$end
$end
$if (!PPanel.Plugin && APanel.SelCount<2 && PPanel.Visible && APanel.Path!=PPanel.Path)
Clip(5,2) CtrlShiftIns %f=replace(Clip(0),"\"","");
$if ((panel.fattr(0,%f) & 0x10) == 0)
eval(Key(#Akey))
End
print(%f)
Home ShiftEnd
$else
eval(Key(#Akey))
$end
$Else
eval(Key(#Akey))
$end
// Clear "Filter" checkbox
$if (Dialog && (Dlg.Info.Id=="FCEF11C4-5490-451D-8B4A-62FA03F52759" || Dlg.Info.Id=="{FCEF11C4-5490-451D-8B4A-62FA03F52759}"))
$if (env("FARLANG")=="English")
AltU
$if (Dlg.CurPos==15)
Subtract AltO
$end
$else
$rep(5) ShiftTab $end
$if (Dlg.CurPos==15)
Subtract $rep(5) Tab $end
$end
$end
$end
$if (Key(#Akey)=="F5")
AltM // english interface!
Subtract
AltO // english interface!
$end
}}
Last edited by Maximus5 on Wed 25 Apr, 2012 21:32, edited 3 times in total.
Re: Мультикопирование
Да, действительно, с фигурными скобками заработало. Просто как по мне, эта проверка несколько избыточна и ничего криминального и без неё бы не случилось. Но да ладно, с ней — надёжней.
Пользуюсь ФАРом больше 20 лет © собирательный.
-
- Posts: 270
- Joined: Mon 10 Apr, 2006 00:53
- Location: станица Григорополисская
- Has thanked: 147 times
- Contact:
Re: Мультикопирование
А я бы для начала спросил — «Уважаемый коллега, а нахрена зачем Вам двести пятьдесят копий одного и того же скрипта по разным папкам?» Есть некоторое подозрение, что в этом нет необходимости.
-
- Posts: 270
- Joined: Mon 10 Apr, 2006 00:53
- Location: станица Григорополисская
- Has thanked: 147 times
- Contact:
Re: Мультикопирование
А вообще…
На пассивной панели указать потребный файл, на активной панели — выделить потребные папки. Нажать «Ctrl-G», в диалоговом окне ввести:Вот было бы здорово еслиб в одной панельке я указал нужный файл (или файлы), а в другой - папки куда это добро скопировать одним нажатием. Наверное не очень сложная примочка.
Code: Select all
copy /y "!#!\!.!" "!^!\!.!"
Re: Мультикопирование
не работает
мне вот нужно два файла скопировать
кроме того, логика пассивной-активной панели крышу сносит
мне вот нужно два файла скопировать
кроме того, логика пассивной-активной панели крышу сносит
-
- Posts: 270
- Joined: Mon 10 Apr, 2006 00:53
- Location: станица Григорополисская
- Has thanked: 147 times
- Contact:
Re: Мультикопирование
В ТЗ этого не было .Maximus5 wrote:мне вот нужно два файла скопировать
С более чем одним файлом так не выйдет. Тут для одного-то… Потому такая интересная логика, шиворот-навыворот, была использована. Вот ещё, не менее извращённая, для копирования посредством «Apply command» нескольких помеченных на пассивной панели файлов в каждую из помеченных на активной панели папок:
Code: Select all
for /f "delims==" %i in (!#!@!) do @copy /y "!\%i" "!^!\!.!\"