Перемещение группы файлов одним кликом
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Перемещение группы файлов одним кликом
Помогите,пожалуйста, с автоматизацией данной операции.
Требуется Переместить группу выделенных файлов в строго определенную папку. (Например Archiv)
В идеале - повесить на шорт кат. Или кнопку создать.
Требуется Переместить группу выделенных файлов в строго определенную папку. (Например Archiv)
В идеале - повесить на шорт кат. Или кнопку создать.
Замени строкиmoroz90 писал(а):Если курсор стоит на папке. Или , если курсор стоит на двух точках(выход из папки).
Что бы вываливалось какое либо сообщение.
Код: Выделить всё
ElseIf FSO.FolderExists(Rln) Then
FSO.MoveFolder Rln, WScript.Arguments(1)
Код: Выделить всё
Else
MsgBox "Смотри, куда курсор ставишь!", vbExclamation, "Окосел?" '(c) Tol!k :)Нет, я не сплю. Я просто медленно моргаю.
".." TC не передаёт, так что о том, что курсор был установлен на "..", можно догадаться только косвенно.moroz90 писал(а):а если на двух точках, то по прежнему...
//Столкнувшись с этим и пытаясь побороть, я тогда и разозлился на moroz'a :D
Проще всего поменять параметры местами, тогда отсутствие второго параметра будет означать, что курсор стоял на ".."
Если же кроме ".." выделено что-то ещё, то ни один скрипт никогда не узнает о существовании ".."
ЗЫ
moroz90, почему бы просто внимательно не смотреть, что выделено?
Последний раз редактировалось Tol!k Чт ноя 26, 2009 10:52, всего редактировалось 1 раз.
moroz90
Вообщем, примерно так:
Папки тоже перемещает.
А еще прикол - если выделить ".." и поставить курсор на невыделенный файл\папку, то в %L попадет этот файл\папка.
Вообщем, примерно так:
Код: Выделить всё
'==========================================================================
' Перемещение выделенных файлов с соответствующими им (для *.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Не так. Гислер сделал т.о., что если в параметрах %L, а курсор на "..", то параметры вообще затираются все. Попробуй указать "?" в строке параметров и проверить этот случай.Tol!k писал(а):Проще всего поменять параметры местами, тогда отсутствие второго параметра будет означать, что курсор стоял на ".."
А еще прикол - если выделить ".." и поставить курсор на невыделенный файл\папку, то в %L попадет этот файл\папка.
Нет, я не сплю. Я просто медленно моргаю.
А... Ну значит можно отследить это по полному отсутствию параметров.Не так. Гислер сделал т.о., что если в параметрах %L, а курсор на "..", то параметры вообще затираются все. Попробуй указать "?" в строке параметров и проверить этот случай.
Бред.А еще прикол - если выделить ".." и поставить курсор на невыделенный файл\папку, то в %L попадет этот файл\папка.
Но объяснимо. Часто замечаю, как при нажатии кнопок снимается выделение с ".."
Если при этом курсор стоит на файле\папке, то именно он и отправится в параметры.
Но бред. Лучше бы в этом случае параметры вообще не отправлялись.
Вопрос. Есть ли возможность средствами скрипта (можно с WSH Helper, но без использования параметров %L и т.п.) определить, есть ли на панели выделенные файлы\папки, в том числе и ".." ?Batya писал(а):А еще прикол - если выделить ".." и поставить курсор на невыделенный файл\папку, то в %L попадет этот файл\папка.
sa писал(а):можно с WSH Helper
ReadMe.txt писал(а):-------------------------------
Макросы (готовые наборы команд)
-------------------------------
Внимание! На данный момент макросы используют команды,
связанные с буфером обмена и могут удалять нетекстовое
содержимое в нем (с текстом вроде уже проблем нет)
GetSrcSelectedFiles [True, если нужен полный путь]
возвращает массив имен выделенных файлов в панели-источнике.
GetTrgSelectedFiles [True, если нужен полный путь]
возвращает массив имен файлов, выделенных в целевой панели.
GetSrcPath - возвращает путь к панели-источнику
GetTrgPath - возвращает путь к целевой панели
Нет, я не сплю. Я просто медленно моргаю.