VBS-скрипт рекурсивного обхода папок на Windows (WSH)

Понадобился тут скрипт для виндов, чтобы обойти все подпапки в указанной и сделать в каждой одно черное дело. Когда подпапок пара тысяч, естественно будешь программу писать, а не руками лазить. Посредством вдумчивого гугления и компиляции разных кусков кода получилось такое:

'Создаём и запускаем диалог выбора корневой папки
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Select a folder:", 0)
'Если пользователь не выбрал папку, завершаем приложение
If objFolder Is Nothing Then Wscript.Quit
'Получаем путь к выбранной папке
objPath = objFolder.Self.Path
'Создаем объект папки файловой системы
'и отправляем его в рекурсивную функцию
Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubFolders FSO.GetFolder(objPath)
'Сигнализируем о завершении программы
Wscript.Echo "PROFIT in " & objPath
'Функция рекурсивного обхода папок
Sub ShowSubFolders(Folder)
'Перебираем подпапки
 For Each Subfolder in Folder.SubFolders
'В каждой подпапке Subfolder делаем нужное нам черное дело
'Например, выводим её имя
   Wscript.Echo Subfolder.Name
'Рекурсивно вызываем функцию для подпапок текущей папки
   ShowSubFolders Subfolder
  Next
End Sub
'PROFIT...

Ленивые создавать vbs-файл могут скачать его в конце страницы.
А одаренным могу предложить для тестирования выбрать диск C: и попытаться догадаться, как завершить этот скрипт, поскольку перебора всех папок Windows с сообщением об имени каждой вы явно не дождётесь. :)
Скачать скрипт: folder.rar

Теги

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
CAPTCHA
А не робот ли вы случайно?
3 + 9 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.