Batya

|
Posted: Wed Feb 13, 2013 18:10 Post subject: |
|
|
Petr_Ch wrote: | Batya
Выделять пробовал самые разные папки. Не помогает. |
Хм... Да, были косяки.
Переписал скрипт полностью:
Code: | '======================================================================
' Для каждой папки из файла-списка перемещаются и переименовываются
' вложенные файлы - {Имя выделенной папки}_{Имя файла}.{Расширение}
'
' Параметры:
' {файл-список}
'
' Пример параметров при вызове из TC:
' %L
'======================================================================
Option Explicit
Dim EXT
Set EXT = CreateObject("Scripting.Dictionary")
'========== Изменяемые параметры ======================================
Const BasePath = "C:\Temp\" 'Пусть для перемещения файлов
'Массив расширений обрабатываемых файлов
EXT.Add "jpg", ""
EXT.Add "tif", ""
'======================================================================
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
On Error Resume Next
MoveFromFolder FSO.GetFolder(F), F
Err.Clear
On Error GoTo 0
End If
End If
Loop
.Close
End With
Set FSO = Nothing
Set EXT = 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
Next
End Sub
Sub MoveFile(pFile, pFolder)
Dim lF, lE
lF = BasePath & FSO.GetBaseName(pFolder) & "_" & pFile.Name
lE = LCase(FSO.GetExtensionName(pFile.Path))
If EXT.Exists(lE) Then FSO.MoveFile pFile.Path, lF
End Sub
|
Выделять нужно папки. Уровень вложенности у папок может быть любой. Новые имена файлов получают приставку именно от имён выделенных папок (если не удобно, могу переделать). _________________ Нет, я не сплю. Я просто медленно моргаю. |
|