Petr_Ch
|
Posted: Sat Feb 02, 2013 17:54 Post subject: |
|
|
Flasher
Все эти переносы как раз и нужны чтобы сосредоточиться на основной цели - обработке, файлов. По обработке у меня нет вопросов. Там как раз моё поле и я в теме.
Путём длительных наблюдений я подсчитал что обработка ускоряется процентов на 30, если файлы собраны в одну кучу.
Так вот, если в плане обработки и разбора файлов я уже давно всё оптимизировал, то эти самые переносы файлов туда-сюда так и остались циклами из множества ручных операций. А ручные операции это всегда риск ошибиться. Ну и вообще трата времени и занудство в чистом виде.
Вот я и хочу автоматизировать самое слабое звено - ручное растаскивание файлов.
Код подправил, но выдает ошибку. Что-то в предпоследней строчке ему не нравится. Хотя, судя по всему, он и начальные команды не выполняет(((
Code: | '======================================================================
' Параметры:
' {файл-список}
'
' Пример параметров при вызове из TC:
' %L
'======================================================================
Option Explicit
Dim FSO, FF, F, SF
With WScript
If .Arguments.Count = 0 Then
MsgBox "Не заданы параметры!", vbOKOnly + vbCritical, "Очистка вложенных папок"
.Quit
End If
FF = .Arguments(0)
End With
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.OpenTextFile(FF, 1)
Do While Not .AtEndOfStream
F = Trim(.ReadLine)
If F <> "" Then
If FSO.FolderExists(F) Then
For Each SF In FSO.GetFolder(F).SubFolders
On Error Resume Next
MoveFromFolder SF, F
If Err.Number = 0 Then FSO.DeleteFolder SF.Path
Err.Clear
On Error GoTo 0
Next
End If
End If
Loop
.Close
End With
Set FSO = Nothing
WScript.Quit
Sub MoveFromFolder(pSubFolder, pFolder)
Dim lF
For Each lF In pSubFolder.Files
MoveFile lF, pFolder
Next
For Each lF In pSubFolder.SubFolders
MoveFromFolder lF, pFolder
FSO.DeleteFolder lF.Path
Next
End Sub
Sub MoveFile(pFile, pFolder)
Dim lF, lE
lF = "C:\temp\" & FSO.GetParentFolderName(pFolder.Path) & "_" & pFile.Name
lE = LCase(FSO.GetExtensionName(pFile.Path))
If (lE = "jpg") Or (lE = "tif") FSO.MoveFile pFile.Path, lF
End Sub |
|
|