Script para listar todos os arquivos de pastas de subpastas e gerar um indice em html

Infelizmente não fiz o script para ser executado diretamente a uma unidade de disco, pois  a pasta System Volume Information apresenta erro de acesso negado.
Escolha uma pasta e teste.
Caso alguém melhore o script avise que eu coloco a versão melhorada, ou coloco um link para a mesma.

'Script para listar todos os arquivos de pastas de subpastas e gerar um indice em html.
'Fonte:  http://www.tek-tips.com/viewthread.cfm?qid=1478950&page=9 e http://www.activexperts.com/activmonitor/windowsmanagement/scripts/storage/folders/
'Romeu Avancini rmavancini@gmail.com 23-11-2008

Set objFSO = CreateObject("Scripting.FileSystemObject")
Const ForAppending = 2
Const WINDOW_HANDLE = 0
Const NO_OPTIONS = 0
Set objShell = CreateObject("Shell.Application")

Set objFolderSelect = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Selecione a pasta onde será gravado o LOG:", NO_OPTIONS, " ")       
Set objFolderItemDest = objFolderSelect.Self
strEndFolder = objFolderItemDest.Path

LogFile = strEndFolder & "\index.html"
Dim objLogFile:Set objLogFile = objFSO.CreateTextFile(logfile, 2, True)

Set objFolderSelect = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Seleciona a pasta a ser gerado o relatorio:", NO_OPTIONS, " ")
Set objFolderItem = objFolderSelect.Self
objStartFolder = objFolderItem.Path

xFiles=0
xFolders=0
Set objFolder = objFSO.GetFolder(objStartFolder)
objLogFile.Write "<Font face='Arial' Color='Red'><b> Pasta Raiz : " & objFolder.Path & "</b></Font><br>"
objLogFile.Writeline "<Font face='Arial' Color='Red' size='5'>------------------------------------------------------------------------</Font><br>"
Set colFiles = objFolder.Files
For Each objFile in colFiles
	xFiles=xFiles+1
    objLogFile.Write  "<Font face='verdana' Color='black' size='2'><a href='" & objFolder.Path &"\"& objFile.Name & "'><b>" &  objFile.Name & "</b></a></Font><br>"
    objLogFile.Writeline
Next

ShowSubfolders objFSO.GetFolder(objStartFolder)

Sub ShowSubFolders(Folder)
    For Each Subfolder in Folder.SubFolders
		xFolders=xFolders+1
		objLogFile.Writeline "<Font face='Arial' Color='Red' size='5'>------------------------------------------------------------------------</Font><br>"
        objLogFile.Write "<Font face='Arial' Color='Red'><b>" &  Subfolder.Path & "</b></Font><br>"
		objLogFile.Writeline "<Font face='Arial' Color='Red' size='5'>------------------------------------------------------------------------</Font><br>"
        objLogFile.Writeline
        Set objFolder = objFSO.GetFolder(Subfolder.Path)
        Set colFiles =objFolder.Files
        For Each objFile in colFiles
			xFiles=xFiles+1
            objLogFile.Write "<Font face='verdana' Color='black' size='2'><a href='" & Subfolder.Path &"\"& objFile.Name & "'><b>" &  objFile.Name & "</b></a></Font><br>"
            objLogFile.Writeline
        Next
        ShowSubFolders Subfolder
    Next
End Sub

objLogFile.Writeline "<p>"
objLogFile.Write "<Font face='verdana' Color='blue' size='2'><a href=''><b>Dicas TI Blog</b></a></Font><br>"
objLogFile.Writeline "<Font face='verdana' Color='black' size='2'>" & xFiles & " arquivos nas " & xFolders & " pastas e subpastas!</font>"

objLogFile.Close
wscript.echo "Fim do script!"

wscript.quit
Anúncios

5 comments so far

  1. Fred on

    Pra que vc tá usando DIM em VBScript?! :)
    Aprende a fazer isso em Javascript, meu! hehehe

    []s
    Fred

  2. Romeu on

    Eu juro que tentarei aprender!!!!huahauhauahau
    abraço!

  3. Frederico Pissarra on

    Que vergonha!!! Que vergonha!!!
    Você precisa de VBScript para uma coisa que o Linux faz em 1 (UMA!) linha?

    $ tree -a -F -H htmldir dir > htmlfile.html

    hehehe

  4. Romeu on

    fred !!!! tô começando a concordar!!! A M$ é uma desgraça mesmo! hauhauahuahau

  5. Queiroz on

    Por isto não Fred e tambem Romeu… use no prompt de comando do windows o mesmo comando Tree, e sem usar o dir>nomedoarquivo.
    basta isto:

    tree /A /F >lista1.txt

    Pronto! Eis ai a lista completa de todos os arquivos de uma unidade ou de apenas uma pasta.


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: