Batya
|
Posted: Fri Jun 29, 2007 12:07 Post subject: |
|
|
soscock wrote: | Если создадите описанный скрипт, то думаю многие будут Вам благодарны, так как функция очень часто востребована. |
Code: | '================================================================================
' Создание папок по содержимому файла
' Параметры вызова:
' {Родительская папка для создаваемых} {Файл, содержащий имена создаваемых папок}
' Возможные варианты вызова из TC:
' --------------------------------
' "%T" %F
' Создает в противоположной панели папки по именам папок\файлов,
' выделенных в текущей панели
' --------------------------------
' "%P" C:\Tmp\FoldList.txt
' Создает в текущей панели папки по именам, указанным в файле C:\Tmp\FoldList.txt
' --------------------------------
' "%P" %F
' Создает в текущей панели папки по именам, выделенных файлов
' (Внимание, при этом переменная IsPassExt должна иметь значение True)
'================================================================================
Option Explicit
Dim Delim, IsPassExt
'========================== Изменяемые параметры ================================
Delim = vbNewLine 'Разделитель имен папок в исходном файле
IsPassExt = True 'Признак исключения расширения для имен новых папок,
' если в исходном файле-списке указано имя с расширением
'================================================================================
If WScript.Arguments.Count < 2 Then
MsgBox "Неправильно заданы параметры!", _
vbOKOnly + vbExclamation, _
"Создание папок по содержимому файла"
WScript.Quit
End If
Dim FSO, ParentFold, FoldList, FoldArr, F, OTF
Set FSO = CreateObject("Scripting.FileSystemObject")
ParentFold = WScript.Arguments(0)
FoldList = WScript.Arguments(1)
If Not Right(ParentFold, 1) = "\" Then
ParentFold = ParentFold & "\"
End If
If Not FSO.FolderExists(ParentFold) Then
MsgBox "Неправильно указана родительская папка!", _
vbOKOnly + vbExclamation, _
"Создание папок по содержимому файла"
Set FSO = Nothing
WScript.Quit
End If
If Not FSO.FileExists(FoldList) Then
MsgBox "Неправильно указан файл со списком создаваемых папок!", _
vbOKOnly + vbExclamation, _
"Создание папок по содержимому файла"
Set FSO = Nothing
WScript.Quit
End If
Set OTF = FSO.OpenTextFile(FoldList, 1)
FoldArr = Split(OTF.ReadAll, Delim)
OTF.Close
For Each F In FoldArr
If IsPassExt Then
CreateFold(ParentFold & FSO.GetBaseName(F))
Else
If Right(F, 1) = "\" Then
F = Left(F, Len(F) - 1)
End If
CreateFold(ParentFold & F)
End If
Next
Set OTF = Nothing
Set FSO = Nothing
WScript.Quit
Sub CreateFold(Fold)
If Not FSO.FolderExists(Fold) Then
FSO.CreateFolder(Fold)
End If
End Sub |
Сейчас в скрипте по умолчанию в качестве разделителя для файла, содержащего список создаваемых папок, установлен перенос строки. Если файл будет содержать другие разделители, то надо изменить значение переменной Delim. Например:
Также по желанию можно менять переменную IsPassExt (варианты - False\True), смысл которой, я думаю, понятно описан в шапке скрипта.
CapitanFlint
Выдели, пожалуйста, несколько последних постов в отдельную тему. |
|