Total Commander Knowledge Base

Есть вопрос?

Поищите ответ в самой большой русскоязычной базе знаний по Total Commander!

Копирование "пустой" структуры каталогов с файлами

Q: Бывает нужно скопировать каталог вместе с вложенными в него каталогами и файлами, но так, чтобы вместо файлов копировались "пустышки", с соответствующими им именами.
A: Тебе поможет следующий скрипт:

'=====================================================================
' Создание структуры каталогов и файлов нулевого размера в них

' В параметрах вызова из TC должно быть прописано:
' %WL "%T"
'=====================================================================

Option Explicit
Dim FSO, WSH, OTF, Target, NewTar
Dim Selected
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Set OTF = FSO.OpenTextFile(WScript.Arguments(0), 1, False, -2)
Target  = WScript.Arguments(1)

Do While Not OTF.AtEndOfStream
  Selected = OTF.ReadLine
  If FSO.FileExists(Selected) Then
    FSO.CreateTextFile(Target & FSO.GetFile(Selected).Name)
  End If
  If FSO.FolderExists(Selected) Then
    NewTar = Target & FSO.GetFolder(Selected).Name
    If Not FSO.FolderExists(NewTar) Then
      FSO.CreateFolder(NewTar)
    End If
    FolderProcess FSO.GetFolder(Selected), NewTar & "\"
  End If
Loop
'MsgBox("Выполнено!")
Set OTF = Nothing
Set FSO = Nothing
Set WSH = Nothing
WScript.Quit()

Function FolderProcess(Fold, Tar)
  Dim sf, f, NewF
  For Each sf in Fold.SubFolders
    NewF = Tar & sf.Name
    If Not FSO.FolderExists(NewF) Then
      FSO.CreateFolder(NewF)
    End If
    FolderProcess sf, NewF & "\"
  Next
  For Each f in Fold.Files
    FSO.CreateTextFile(Tar & FSO.GetFile(f).Name)
  Next
End Function

Сохрани код в файл с расширением vbs. Повесь файл на кнопку. В параметрах кнопки укажи: %WL "%T".
Соответственно, выделяешь файлы и папки и нажимаешь кнопку. На противоположной панели будет создана структура каталогов с файлами нулевого размера. А затем ты можешь с ними делать что угодно. Например, запаковать в любой архив.

Batya