Batya

|
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 попадет этот файл\папка. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|