1 (изменено: Евген, 2014-07-10 14:39:17)

Тема: VBS: Рекурсивное переименовывание папок в дереве

Вообщем знакомый один просил сильно написать ему скриптец, который в древовидной файловой структуре искал бы все папки с именем "Application" и переименовывал бы их в "App" вот собственно и всё, что делает этот скрипт.
Может быть кому понравится или пригодится, буду рад )))

On Error Resume Next                                                                                  ' на случай если прав на папку не хватит
  Set fso = CreateObject("Scripting.FileSystemObject")

Set startfolder=fso.GetFolder("c:\util")                                                              ' путь к диску или стартовой папке

ShowSubFolders(startfolder)

Sub ShowSubFolders(Folder)
    For Each Subfolder In Folder.SubFolders
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set objFolder = fso.GetFolder(Subfolder.Path)
      If Subfolder.Name="Application" Then                                                        ' Искомое имя папки
          fso.MoveFolder Subfolder.Path, fso.GetFolder(Subfolder.Path).ParentFolder & "\App"  ' Конечное имя папки
      End If
        ShowSubFolders Subfolder
    Next
End Sub
Времени не хватает... :-(

2

Re: VBS: Рекурсивное переименовывание папок в дереве

А проверять наличие уже существующей папки «App» перед переименованием ?

Почему не просто «Folder.Name = "App"»?

3 (изменено: Евген, 2014-07-10 14:52:23)

Re: VBS: Рекурсивное переименовывание папок в дереве

alexii пишет:

А проверять наличие уже существующей папки «App» перед переименованием ?

Почему не просто «Folder.Name = "App"»?

Да, так тоже работает...

fso.GetFolder(Subfolder.Path).Name="App"  ' Конечное имя папки

ХЗ, чот как пришло в голову, так и сделал...

Ну а проверка - конечно упустил, но будем надеяться на идеальные условия задачи (сам себе ТЗ не придумываю:-))
Вообще ничо не хотел делать, сижу засыпаю...
Просто знакомый уж обпросился ))) - проснулся на чуток...

Времени не хватает... :-(