View previous topic :: View next topic |
Author |
Message |
cojoc
Joined: 04 Sep 2009 Posts: 144
|
(Separately) Posted: Sat Oct 08, 2011 15:15 Post subject: Кнопка копирования выделенных файлов в папку с тем же именем |
|
|
Подскажите, пожалуйста, кнопку копирования выделенных файлов в другую панель в папку с именем источника (с именем той папки из которой копируются файлы) |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10265 Location: Россия, Саратов
|
(Separately) Posted: Sat Oct 08, 2011 15:51 Post subject: |
|
|
cojoc
А если в целевой панели уже открыт тот же самый каталог, что и в исходной, что тогда? _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
cojoc
Joined: 04 Sep 2009 Posts: 144
|
(Separately) Posted: Sat Oct 08, 2011 16:45 Post subject: |
|
|
тогда не копировать |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Oct 09, 2011 01:35 Post subject: |
|
|
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 |
|
|
cojoc
Joined: 04 Sep 2009 Posts: 144
|
(Separately) Posted: Sun Oct 09, 2011 02:00 Post subject: |
|
|
Flasher wrote: |
я могу только скрипт предложить:
|
Спасибо Flasher снова выручил Скрипт сработал прекрасно! |
|
Back to top |
|
|
cojoc
Joined: 04 Sep 2009 Posts: 144
|
(Separately) Posted: Mon Oct 10, 2011 20:29 Post subject: |
|
|
Flasher при работе с FTP скрипт выдаёт ошибку, возможно ли это исправить или это проблема совсем другого порядка? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Oct 11, 2011 15:35 Post subject: |
|
|
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 |
|
|
cojoc
Joined: 04 Sep 2009 Posts: 144
|
(Separately) Posted: Tue Oct 11, 2011 19:19 Post subject: |
|
|
Ясно, я это предполагал. Спасибо за разъяснения.
Скрипты (новые) не сработали - с анонимом выдал ошибку и всё,
другой - создал нужную папку и затем выдал ошибку. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Oct 11, 2011 21:34 Post subject: |
|
|
cojoc
Копирование с Ftp происходит. А надо - на?
Если - с, то что пишет? |
|
Back to top |
|
|
cojoc
Joined: 04 Sep 2009 Posts: 144
|
(Separately) Posted: Wed Oct 12, 2011 14:35 Post subject: |
|
|
Flasher
У меня почему-то не копирует из FTP.
Пишет:
Line: 7
Char: 3
Error: The system cannot find the path specified.
Code: 80070003
Source: WshShell.Exec |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Oct 12, 2011 14:45 Post subject: |
|
|
cojoc
По исходнику это 8 строка. Так а путь к TCMC соответствует действительности? Мы же этот момент проходили. |
|
Back to top |
|
|
cojoc
Joined: 04 Sep 2009 Posts: 144
|
(Separately) Posted: Wed Oct 12, 2011 19:08 Post subject: |
|
|
Ваша правда, я ошибся с путём!
Сейчас проверил скрипт без анонима создал папку и скопировал файл, но не в папку, в в другую панель.
Скрипт с анонимом создал папку, но файл не скопировал(скачал) с FTP. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Oct 12, 2011 19:44 Post subject: |
|
|
cojoc wrote: | Сейчас проверил скрипт без анонима создал папку и скопировал файл, но не в папку, в в другую панель. | Должно быть в другую панель и в папку.
Можно поставить
после
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 |
|
|
cojoc
Joined: 04 Sep 2009 Posts: 144
|
(Separately) Posted: Wed Oct 12, 2011 20:03 Post subject: |
|
|
Flasher
Сделал:
Code: | Wscript.Sleep 30
.Exec(TCMC & " CM3101") |
Тот же эффект, спрашивает скопировать файл и предлагает путь до другой панели. а не в созданную папку. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Oct 12, 2011 20:16 Post subject: |
|
|
Не так написал. Поправил. Надо местами поменять. |
|
Back to top |
|
|
|