View previous topic :: View next topic |
Author |
Message |
Vishes
Joined: 17 Jun 2006 Posts: 1
|
(Separately) Posted: Sat Jun 17, 2006 14:46 Post subject: Копировать один файл в несколько папок сразу! |
|
|
Здравствуйте! интересует, есть ли возможность копировать один файл в несколько папок сразу! Обычными средствами Тотал Командера это невозможно! есть ли какие-нибудь мысли по этому поводу? может плагин уже придуман? я не нашел ничего.
а вещь по-моему вещь нужная.
! | Avada: | Тема перенесена из "Секретов и советов" в "Автоматизацию". | |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Sat Jun 17, 2006 15:00 Post subject: |
|
|
Цитата из RU.TCKB:
Quote: | Q: Можно ли копировать в несколько папок? Типа: F5 - пишем E:\; F:\, он копирует туда и туда.
A: Нет, к сожалению. На днях обнаружил что тоже хочу такую фичу. Как вариант можно создать батничек, который будет копировать выбранный файл в нужные тебе заранее заготовленные папки.
Ergo
|
_________________ База знаний о Total Commander
Блог |
|
Back to top |
|
|
LocKtaR-o-DarK
Joined: 12 Aug 2005 Posts: 349 Location: Москва
|
(Separately) Posted: Mon Jun 19, 2006 04:02 Post subject: |
|
|
Vishes
тут глянь, если нужно фоном, пиши сценарий или скрипт
Чтобы не писать "cd {папка}", просто с шифтом перетяни папку(и) на панель кнопок _________________ |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
|
Back to top |
|
|
jehaz
Joined: 24 May 2006 Posts: 16
|
(Separately) Posted: Fri Jun 23, 2006 15:01 Post subject: |
|
|
Как наипростейший вариант для копирования одного файла во множество папок можно использовать следующую кнопку:
Code: | TOTALCMD#BAR#DATA
cmd /c
for /f "usebackq tokens=*" %%i in (%L) do copy %T%M "%%~di%%~pi"
C:\WINDOWS\explorer.exe,8
Копирование файла во множество папок
-1 |
Принцип такой… Ставишь курсор на копируемый файл, далее переходишь на другую панель, затем выделяешь папки куда копировать и жмешь кнопку. Кончно если использовать поиск то функция кнопки немного расширяется. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Jun 23, 2006 18:28 Post subject: |
|
|
LocKtaR-o-DarK предложил создать скрипт для копирования нескольких файлов в несколько каталогов. Это несложно сделать, используя Script Helper и KillCopy.
Скрипт *.vbs:
Code: | '========================================================
' Копирование выделенных файлов в несколько каталогов
' Параметры вызова из TC:
' %L
'========================================================
If WScript.Arguments.Count = 0 Then
MsgBox "Не заданы параметры!", vbOKOnly + vbExclamation, "Копирование в несколько каталогов"
WScript.Quit
End If
Dim TCS, WSH, Targets, TargStr
Set TCS = CreateObject("TCScript.Helper")
Set WSH = CreateObject("WScript.Shell")
Targets = TCS.GetTrgSelectedFiles(1)
TargStr = Join(Targets, "?")
WSH.Run "killcopy.exe |" & WScript.Arguments(0) & "|" & TargStr & "| -n", , 1
Set TCS = Nothing
Set WSH = Nothing
WScript.Quit |
Как действует - выделяем каталоги КУДА копировать, переключаемся на другую панель, выделяем ЧТО копировать, запускаем скрипт. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
(Separately) Posted: Sat Jun 24, 2006 23:55 Post subject: |
|
|
Quote: | Как действует - выделяем каталоги КУДА копировать |
Все здорово, если эти каталоги находятся в одной директории, а чаще всего это не так. Если у них есть общий критерий какой-нибудь, можно поиск и Feed to listbox. А твой скрипт работает в Tree view? Так или иначе, мне проще собрать "целевые" директории в виде вкладок на одной панели, а на другой - файлы для копирования.
А слабо написать скрипт, который копирует файлы из разных директорий в другие разные директории? Отвечаю сам себе - не слабо. Не слабо, но впадлу Проще либо батник ad hoc, либо по очереди врукопашную. Есть и другие способы. Но мне чаще приходится копировать из одной директории в множество других. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Jun 26, 2006 10:51 Post subject: |
|
|
Вахмурка wrote: | Все здорово, если эти каталоги находятся в одной директории, а чаще всего это не так. Если у них есть общий критерий какой-нибудь, можно поиск и Feed to listbox. А твой скрипт работает в Tree view? |
Как видишь, скрипт очень простой. Я не заморачивался сильно. Что предложили сделать, то я и реализовал. Если у кого-то в каком-либо режиме не работает, и ему НАДО, чтобы работало, сообщайте, буду пытаться подправить.
Вахмурка
Ты проверял в других режимах? Если - нет, то о чем разговор?
Список выделенных каталогов на панели назначения я получаю макросом из Script Helper. Так что, в случае проблем, будем пытать Volniy |
|
Back to top |
|
|
soscock
Joined: 24 Jun 2007 Posts: 10
|
(Separately) Posted: Sun Jun 24, 2007 06:21 Post subject: |
|
|
Скопировал код в текстовый файл, обозвал его "file_to_folders.vbs", втащил файл в панель кнопок Total'а, задал параметр "%L". Далее, в левом окне - тот файл, который надо копировать в несколько папок, в правом - эти папки, выделенные по Ins.
Жму на кнопку, выползает ошибка:
Заголовок - Windows Script Host
Script: Путь/к/скрипту
Line: 16
Char: 1
Error: The system cannot find the file specified.
Code: 80070002
Source: (null)
Подскажите пожалуйста решение, уж очень ваш скрипт полезный. |
|
Back to top |
|
|
aLexx
Joined: 14 Mar 2005 Posts: 442 Location: Новокузнецк
|
(Separately) Posted: Sun Jun 24, 2007 22:56 Post subject: |
|
|
А у тебя обе эти проги установлены? |
|
Back to top |
|
|
soscock
Joined: 24 Jun 2007 Posts: 10
|
(Separately) Posted: Mon Jun 25, 2007 03:29 Post subject: |
|
|
aLexx wrote: |
А у тебя обе эти проги установлены? |
Так подозреваю, что вопрос ко мне. Во избежание двусмысленности понимания полезно напрямую обращаться к тому, к кому адресуешься.
Нет, кроме TC, никаких вспомогательно-параллельных прог, у меня не установлено. Есть где-нибудь человечье объяснение - что и как установить? А то ведь простому юзеру, для которого TC и предназначен, только догадываться и остаётся. |
|
Back to top |
|
|
aLexx
Joined: 14 Mar 2005 Posts: 442 Location: Новокузнецк
|
(Separately) Posted: Mon Jun 25, 2007 07:34 Post subject: |
|
|
2 soscock
Да, вопрос к тебе был... Ты правильно понял.
Script Helper имеется на http://wincmd.ru. Ставить надо в обязательном порядке, а то не будут работать
большинство из описанных на этом форуме скриптов WSH для ТС.
KillCopy тоже прога из разряда маст хаве. Очень удобна для скачивания файла из сети по FTP,
а также выдирания битого файла с порченных СД-ромов, например.
Так что ставь обе, будет только польза! |
|
Back to top |
|
|
soscock
Joined: 24 Jun 2007 Posts: 10
|
(Separately) Posted: Mon Jun 25, 2007 09:48 Post subject: |
|
|
Спасибо, разобрался, всё работает. |
|
Back to top |
|
|
soscock
Joined: 24 Jun 2007 Posts: 10
|
(Separately) Posted: Tue Jun 26, 2007 07:38 Post subject: |
|
|
Что-то скрипт "дозирует" копирование:
При попытке одновременного копирования двух файлов (производственная необходимость) сразу в более, чем примерно 15-20 каталогов, выдаёт ошибку: Line: 16, Char: 1, Error: Permission denied, Code: 800A0046...
А в принципе - скрипт мегаполезный, много времени сэкономил, большое человеческое автору. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Tue Jun 26, 2007 17:57 Post subject: |
|
|
soscock wrote: | Что-то скрипт "дозирует" копирование |
Это ограничение на длину строки метода Run объекта WshShell, т.е., мягко говоря, на длину коммандной строки.
Не знаю, отличается ли этот лимит в зависимости от ОС. У себя на XP я опытным путем определил, что он равен 2060.
Соответственно, привожу переделанный скрипт, который разбивает строку при необходимости на несколько:
Code: | '========================================================
' Копирование выделенных файлов в несколько каталогов
' Параметры вызова из TC:
' %L
'========================================================
Option Explicit
If WScript.Arguments.Count = 0 Then
MsgBox "Не заданы параметры!", vbOKOnly + vbExclamation, "Копирование в несколько каталогов"
WScript.Quit
End If
Dim TCS, WSH, Targets, TargStr, CommandLineLimit, StrBeg, StrEnd, Delim, Pos, Start
CommandLineLimit = 2060
Delim = "?"
Set TCS = CreateObject("TCScript.Helper")
Set WSH = CreateObject("WScript.Shell")
Targets = TCS.GetTrgSelectedFiles(1)
TargStr = Join(Targets, Delim)
StrBeg = "killcopy.exe |" & WScript.Arguments(0) & "|"
StrEnd = "| -nx"
Pos = 0
Do
TargStr = Mid(TargStr, Pos + 1)
Start = CommandLineLimit - Len(StrBeg) - Len(StrEnd)
If Start <= Len(TargStr) Then
Pos = InStrRev(TargStr, Delim, Start)
Else
Pos = Len(TargStr) + 1
End If
WSH.Run StrBeg & Left(TargStr, Pos - 1) & StrEnd, 7, True
Loop While Len(StrBeg) + Len(TargStr) + Len(StrEnd) > CommandLineLimit
Set TCS = Nothing
Set WSH = Nothing
WScript.Quit |
|
|
Back to top |
|
|
|
|
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
|