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
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Sat Oct 08, 2011 15:15    Post subject: Кнопка копирования выделенных файлов в папку с тем же именем Reply with quote

Подскажите, пожалуйста, кнопку копирования выделенных файлов в другую панель в папку с именем источника (с именем той папки из которой копируются файлы)
Back to top
View user's profile Send private message
Avada



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

Post (Separately) Posted: Sat Oct 08, 2011 15:51    Post subject: Reply with quote

cojoc
А если в целевой панели уже открыт тот же самый каталог, что и в исходной, что тогда?
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Sat Oct 08, 2011 16:45    Post subject: Reply with quote

Avada wrote:
что тогда?

тогда не копировать
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Oct 09, 2011 01:35    Post subject: Reply with quote

cojoc
Не знаю, как насчёт кнопки (пусть Tol!k при желании напишет), я могу только скрипт предложить:
Code:
' Копировать в другую панель
' выделенное в папку с именем активной
' Параметры: %L "%P" "%T"
'======================================
With WScript.Arguments
  L = .Item(0)
  P = .Item(1)
  T = .Item(2)
End With

With CreateObject("Scripting.FileSystemObject")
  Trg = T & .GetFileName(P)
  If Not .FolderExists(Trg) Then .CreateFolder Trg
  Set TF = .OpenTextFile(L, 1)
  Do While Not TF.AtEndOfStream
    F = TF.ReadLine
    If F > vbNullString Then
      If .FolderExists(F) Then
        .GetFolder(F).Copy Trg & "\"
      Else .GetFile(F).Copy Trg & "\"
      End If
    End If
  Loop
  TF.Close
End With
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Sun Oct 09, 2011 02:00    Post subject: Reply with quote

Flasher wrote:

я могу только скрипт предложить:

Спасибо Flasher снова выручил Wink Скрипт сработал прекрасно!
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Oct 10, 2011 20:29    Post subject: Reply with quote

Flasher при работе с FTP скрипт выдаёт ошибку, возможно ли это исправить или это проблема совсем другого порядка?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Oct 11, 2011 15:35    Post subject: Reply with quote

cojoc wrote:
или это проблема совсем другого порядка?
Ещё бы. И причин тому несколько.
1. Копировать и скачивать - это не совсем одно и то же.
2. Ftp всегда требует логин и пароль для соединения с сервером.
3. %P и %L не способны возвращать доменное имя и протокол. Здесь может помочь использование FTPDrive. Но даже после подключения всё равно придётся читать сетевое имя диска. Вот то, что я давал недавно в личку, прикрутить можно.

Можно попробовать пока такой вариант (на аноним):
Code:
' Копировать в другую панель
' выделенное в папку с именем активного каталога
' Параметр: "%T"
'=========== Путь к TCMC ====================
TCMC = "%COMMANDER_PATH%\Utils\TCMC\TCMC.exe"
'============================================
With CreateObject("WScript.Shell")
  .Exec(TCMC & " CM2029")
  P = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
  A = .RegRead(P)
  If A > 0 Then .RegWrite P, 0, "REG_DWORD"
  CD = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
  .Exec(TCMC & " CM2021")
  SelP = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
  If A > 0 Then .RegWrite P, A, "REG_DWORD"
End With

With CreateObject("Scripting.FileSystemObject")
  Trg = WScript.Arguments(0) & .GetFileName(CD) & "\"
  If Not .FolderExists(Trg) Then .CreateFolder Trg
  For Each F in Split(SelP, vbNewLine)
    If F > vbNullString Then
      If Left(F, 6) = "ftp://"  Then F = "ftp://anonymous@" & Mid(F, 7)
      CreateObject("Shell.Application").NameSpace(Trg).CopyHere F, 8
    End If
  Next
End With

Если не будет работать, поправлю один из скриптов, что отсылал.

Можно, ещё, в принципе, средствами TC (не знаю, устроит ли):
Code:
' Копировать в другую панель
' выделенное в папку с именем активного каталога
' Параметры: "%T" "%P"
'=========== Путь к TCMC ====================
TCMC = "%COMMANDER_PATH%\Utils\TCMC\TCMC.exe"
'============================================
With CreateObject("Scripting.FileSystemObject")
  Trg = WScript.Arguments(0) & .GetFileName(WScript.Arguments(1)) & "\"
  If Not .FolderExists(Trg) Then .CreateFolder Trg
End With

With CreateObject("WScript.Shell")
  P = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
  A = .RegRead(P)
  If A > 0 Then .RegWrite P, 0, "REG_DWORD"
  With CreateObject("InternetExplorer.Application")
    .Navigate("about:blank")
    .document.ParentWindow.ClipboardData.SetData("text"), Trg
  End With
  If A > 0 Then .RegWrite P, A, "REG_DWORD"
  .Exec(TCMC & " CM3101")
  .SendKeys"^{V}{ENTER}"
End With
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Tue Oct 11, 2011 19:19    Post subject: Reply with quote

Ясно, я это предполагал. Спасибо за разъяснения.

Скрипты (новые) не сработали - с анонимом выдал ошибку и всё,
другой - создал нужную папку и затем выдал ошибку.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Oct 11, 2011 21:34    Post subject: Reply with quote

cojoc
Копирование с Ftp происходит. А надо - на?
Если - с, то что пишет?
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Wed Oct 12, 2011 14:35    Post subject: Reply with quote

Flasher
У меня почему-то не копирует из FTP.
Пишет:

Line: 7
Char: 3
Error: The system cannot find the path specified.

Code: 80070003
Source: WshShell.Exec
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Oct 12, 2011 14:45    Post subject: Reply with quote

cojoc
По исходнику это 8 строка. Так а путь к TCMC соответствует действительности? Мы же этот момент проходили.
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Wed Oct 12, 2011 19:08    Post subject: Reply with quote

Ваша правда, я ошибся с путём!
Сейчас проверил скрипт без анонима создал папку и скопировал файл, но не в папку, в в другую панель.
Скрипт с анонимом создал папку, но файл не скопировал(скачал) с FTP.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Oct 12, 2011 19:44    Post subject: Reply with quote

cojoc wrote:
Сейчас проверил скрипт без анонима создал папку и скопировал файл, но не в папку, в в другую панель.
Должно быть в другую панель и в папку.
Можно поставить
Code:
  Wscript.Sleep 30
после
Code:
  .Exec(TCMC & " CM3101")
и проверить ещё раз.
cojoc wrote:
Скрипт с анонимом создал папку, но файл не скопировал(скачал) с FTP.
В общем, как я выше писал, в случае несрабатывания первого перейдём к отосланному. Вопрос по скачке переносим в PM.

Last edited by Flasher on Wed Oct 12, 2011 20:17; edited 1 time in total
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Wed Oct 12, 2011 20:03    Post subject: Reply with quote

Flasher
Сделал:
Code:
Wscript.Sleep 30
.Exec(TCMC & " CM3101")

Тот же эффект, спрашивает скопировать файл и предлагает путь до другой панели. а не в созданную папку.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Oct 12, 2011 20:16    Post subject: Reply with quote

Не так написал. Поправил. Надо местами поменять.
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