View previous topic :: View next topic |
Author |
Message |
moroz90
Joined: 22 Oct 2009 Posts: 36
|
(Separately) Posted: Wed Nov 25, 2009 15:28 Post subject: Перемещение группы файлов одним кликом |
|
|
Помогите,пожалуйста, с автоматизацией данной операции.
Требуется Переместить группу выделенных файлов в строго определенную папку. (Например Archiv)
В идеале - повесить на шорт кат. Или кнопку создать. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Wed Nov 25, 2009 17:05 Post subject: |
|
|
Можно использовать этот скрипт. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
moroz90
Joined: 22 Oct 2009 Posts: 36
|
(Separately) Posted: Wed Nov 25, 2009 18:44 Post subject: |
|
|
Наверно можно...
А не мог ли "любезный джин" заточить данный скрипт под меня?
Папка назначения F:\Arhiv
PS ну не силен я в програмировании. гляжу в скрипт, вижу - фигу |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Wed Nov 25, 2009 19:04 Post subject: |
|
|
Зажав Shift, перетащить скрипт на панель TC.
Изменить получившуюся кнопку - указать параметры:
%L "F:\Arhiv" _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
moroz90
Joined: 22 Oct 2009 Posts: 36
|
(Separately) Posted: Wed Nov 25, 2009 19:23 Post subject: |
|
|
спасибо, работает.
А можно еще немного дополнить?
Защитой от дурака.
Если курсор стоит на папке. Или , если курсор стоит на двух точках(выход из папки).
Что бы вываливалось какое либо сообщение.
И еще вопросик. Если папка в сети, \\Cdi\output133\, то почему то не работает |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Thu Nov 26, 2009 10:10 Post subject: |
|
|
moroz90 wrote: | Если курсор стоит на папке. Или , если курсор стоит на двух точках(выход из папки).
Что бы вываливалось какое либо сообщение. |
Замени строки
Code: | ElseIf FSO.FolderExists(Rln) Then
FSO.MoveFolder Rln, WScript.Arguments(1)
|
на это
Code: | Else
MsgBox "Смотри, куда курсор ставишь!", vbExclamation, "Окосел?" '(c) Tol!k :) |
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
moroz90
Joined: 22 Oct 2009 Posts: 36
|
(Separately) Posted: Thu Nov 26, 2009 10:55 Post subject: |
|
|
Поменял.
Теперь, если курсор на папке, то - ОКОСЕЛ... появляется
а если на двух точках, то по прежнему окно с ошибкой "Индекс выходит за пределы диапазона"
И еще про сетевую папку ответь плиз. Как правильно настроить параметры(адрес папки) , если папка - сетевая. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Nov 26, 2009 11:38 Post subject: |
|
|
moroz90 wrote: | а если на двух точках, то по прежнему... | ".." TC не передаёт, так что о том, что курсор был установлен на "..", можно догадаться только косвенно.
//Столкнувшись с этим и пытаясь побороть, я тогда и разозлился на moroz'a :D
Проще всего поменять параметры местами, тогда отсутствие второго параметра будет означать, что курсор стоял на ".."
Если же кроме ".." выделено что-то ещё, то ни один скрипт никогда не узнает о существовании ".."
ЗЫ
moroz90, почему бы просто внимательно не смотреть, что выделено?
Last edited by Tol!k on Thu Nov 26, 2009 11:52; edited 1 time in total |
|
Back to top |
|
|
moroz90
Joined: 22 Oct 2009 Posts: 36
|
(Separately) Posted: Thu Nov 26, 2009 11:48 Post subject: |
|
|
ну ладно, раз .. "TC никуда не передаёт" , буду сам внимательнее.
А то с от вашей доброты совсем обленился
Раньше все делал стандартными способами и не кряхтел. А теперь, полазил по сайту да по форуму, столько всего!!! УХХ..
Спасибо за помощь. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Thu Nov 26, 2009 12:03 Post subject: |
|
|
moroz90
Вообщем, примерно так:
Code: | '==========================================================================
' Перемещение выделенных файлов с соответствующими им (для *.html) папками
'
' Параметры вызова из TC:
' %L "%T"
'==========================================================================
Dim FSO, Fld, WSH, Rln, FileList, TargetDir
If WScript.Arguments.Count > 0 Then
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
FileList = GetPath(WScript.Arguments(0))
TargetDir = GetPath(WScript.Arguments(1)) & "\"
Else
MsgBox "Смотри, куда курсор ставишь!", vbExclamation, "Окосел?" '(c) Tol!k :)
Quit
End If
For Each Rln In Split(FSO.OpenTextFile(FileList).ReadAll, vbNewLine)
If Rln <> "" Then
Rln = GetPath(Rln)
If FSO.FileExists(Rln) Then
FSO.MoveFile Rln, TargetDir
Fld = FSO.GetBaseName(Rln) & "_files"
If FSO.FolderExists(Fld) Then
MoveFolder Fld, TargetDir
End If
ElseIf FSO.FolderExists(Rln) Then
MoveFolder Rln, TargetDir
End If
End If
Next
Quit
Function GetPath(pPath)
GetPath = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(pPath))
End Function
Function MoveFolder(pSourcePath, pTargetPath)
FSO.CopyFolder pSourcePath, pTargetPath
FSO.DeleteFolder pSourcePath
End Function
Sub Quit
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit
End Sub |
Папки тоже перемещает.
Tol!k wrote: | Проще всего поменять параметры местами, тогда отсутствие второго параметра будет означать, что курсор стоял на ".." |
Не так. Гислер сделал т.о., что если в параметрах %L, а курсор на "..", то параметры вообще затираются все. Попробуй указать "?" в строке параметров и проверить этот случай.
А еще прикол - если выделить ".." и поставить курсор на невыделенный файл\папку, то в %L попадет этот файл\папка. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Nov 26, 2009 12:39 Post subject: |
|
|
Quote: | Не так. Гислер сделал т.о., что если в параметрах %L, а курсор на "..", то параметры вообще затираются все. Попробуй указать "?" в строке параметров и проверить этот случай. |
А... Ну значит можно отследить это по полному отсутствию параметров.
Quote: | А еще прикол - если выделить ".." и поставить курсор на невыделенный файл\папку, то в %L попадет этот файл\папка. |
Бред.
Но объяснимо. Часто замечаю, как при нажатии кнопок снимается выделение с ".."
Если при этом курсор стоит на файле\папке, то именно он и отправится в параметры.
Но бред. Лучше бы в этом случае параметры вообще не отправлялись. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2571
|
(Separately) Posted: Thu Nov 26, 2009 12:57 Post subject: |
|
|
Batya wrote: | А еще прикол - если выделить ".." и поставить курсор на невыделенный файл\папку, то в %L попадет этот файл\папка. | Вопрос. Есть ли возможность средствами скрипта (можно с WSH Helper, но без использования параметров %L и т.п.) определить, есть ли на панели выделенные файлы\папки, в том числе и ".." ? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Thu Nov 26, 2009 13:10 Post subject: |
|
|
sa wrote: | можно с WSH Helper |
ReadMe.txt wrote: | -------------------------------
Макросы (готовые наборы команд)
-------------------------------
Внимание! На данный момент макросы используют команды,
связанные с буфером обмена и могут удалять нетекстовое
содержимое в нем (с текстом вроде уже проблем нет)
GetSrcSelectedFiles [True, если нужен полный путь]
возвращает массив имен выделенных файлов в панели-источнике.
GetTrgSelectedFiles [True, если нужен полный путь]
возвращает массив имен файлов, выделенных в целевой панели.
GetSrcPath - возвращает путь к панели-источнику
GetTrgPath - возвращает путь к целевой панели
|
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2571
|
(Separately) Posted: Thu Nov 26, 2009 13:13 Post subject: |
|
|
Вся беда в том, что GetSrcSelectedFiles возвращает файл под курсором, даже, если ничего не выделено... |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Thu Nov 26, 2009 13:28 Post subject: |
|
|
sa wrote: | Вся беда в том, что GetSrcSelectedFiles возвращает файл под курсором, даже, если ничего не выделено... |
%L тоже возвращает файл под курсором, даже, если ничего не выделено... _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
|