none
Script para realizar uma busca RRS feed

  • Pergunta

  • Bom dia a todos,

    Preciso criar um script que seja capaz de realizar uma busca em um servidor por arquivos de determinadas extensões (mp3, wav, entre outras) e, alem de realizar essa busca, seria interessante fazer com que esse script gere um log com o caminho de cada arquivo encontrado e com o tamanho de cada conjunto de arquivos de acordo com a sua extensão.
    Alguem poderia me dar uma ajuda? Utilizando uma BAT estou apenas conseguindo listar os arquivos, sem as informações de tamanho.

    segunda-feira, 30 de agosto de 2010 11:34

Respostas

  • Boa tarde Fabio,

      Obrigado pela ajuda, estou utilizando o script abaixo, o mesmo encaixou-se perfeitamente em minhas necessidades:

    Dim intTotalSpace

    intTotalSpace=0

     

    set onet = CreateObject("wscript.Network")

    strComputer = onet.computername

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    set objTextFile = objFSO.CreateTextFile("c:\" & strcomputer & ".txt", True)

     

    Set objWMIService = GetObject("winmgmts:\\").ExecQuery( _

    "SELECT * FROM CIM_DataFile WHERE Drive = 'C:'")

    For Each objItem in objWMIService

    select case objItem.Extension

    case "mp3"

    call escrever()

    case "wav"

    call escrever()

    case "ac3"

    call escrever()

    case "mpeg"

    call escrever()

    case "avi"

    call escrever()

    case "wmv"

    call escrever()

    case "flv"

    end select 

     

    Next

    objTextFile.writeline "Total de Espaço Usado com estes arquivos: " & int(((intTotalSpace)/1024)/1024) & " MB"

    Wscript.echo "Script de busca por arquivos terminado" 

     

    function escrever()

    objTextFile.writeline objItem.FileType & ": " & objItem.Name & vbcrlf & _

    "Tamanho do arquivo: " & CCur((objItem.FileSize)/(1024*1024)) & " MB" & vbcrlf

    intFileSize=objItem.FileSize

    intTotalSpace= intTotalSpace + intFileSize

     

    end function

     

    • Marcado como Resposta Thiagojr.ramos segunda-feira, 30 de agosto de 2010 17:27
    segunda-feira, 30 de agosto de 2010 17:27

Todas as Respostas

  • Bom dia,

    Olha, eu tenho este script que busca arquivos mp3 na rede inteira. Basta fazer uma adaptação que ele vai te ajudar.

    Dim ip
    Dim fs
    Dim Folder
    Dim SubFolder
    Set fs = CreateObject("Scripting.FileSystemObject") 
    
    Const ForWriting = 2
    
    If not fs.FileExists("C:\Users\fabiano\Desktop\Log.txt") then
    	fs.CreateTextFile("C:\Users\fabiano\Desktop\Log.txt")
    End If
    	
    Set FileLog = fs.OpenTextFile("C:\Users\fabiano\Desktop\Log.txt", ForWriting)
    
    
    For ip = 15 to 255
    
    	FindFiles("\\10.1.0." & ip & "\c$\")
    
    Next
    
    Public Sub FindFiles(Diretorio)
    
    	On Error Resume Next
    
    	Set Folder = fs.GetFolder(Diretorio)
    
    	If Err.Number = 0 then
    
    		For Each SubFolder in Folder.SubFolders
    
    			FindFiles(SubFolder.Path)
    
    		Next
    
    		For Each File in Folder.Files
    
    			If lCase(fs.GetExtensionName(File.Name)) = "mp3" then
    
    				FileLog.WriteLine(Diretorio & "\" & File.Name)
    
    			End If
    
    		Next
    
    	End If
    
    	On Error GoTo 0
    
    End Sub
    
    FileLog.Close
    
    MsgBox("Varredura executada.")
    

    Fabiano Se for útil, marque como Útil!
    segunda-feira, 30 de agosto de 2010 11:57
  • Boa tarde Fabio,

      Obrigado pela ajuda, estou utilizando o script abaixo, o mesmo encaixou-se perfeitamente em minhas necessidades:

    Dim intTotalSpace

    intTotalSpace=0

     

    set onet = CreateObject("wscript.Network")

    strComputer = onet.computername

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    set objTextFile = objFSO.CreateTextFile("c:\" & strcomputer & ".txt", True)

     

    Set objWMIService = GetObject("winmgmts:\\").ExecQuery( _

    "SELECT * FROM CIM_DataFile WHERE Drive = 'C:'")

    For Each objItem in objWMIService

    select case objItem.Extension

    case "mp3"

    call escrever()

    case "wav"

    call escrever()

    case "ac3"

    call escrever()

    case "mpeg"

    call escrever()

    case "avi"

    call escrever()

    case "wmv"

    call escrever()

    case "flv"

    end select 

     

    Next

    objTextFile.writeline "Total de Espaço Usado com estes arquivos: " & int(((intTotalSpace)/1024)/1024) & " MB"

    Wscript.echo "Script de busca por arquivos terminado" 

     

    function escrever()

    objTextFile.writeline objItem.FileType & ": " & objItem.Name & vbcrlf & _

    "Tamanho do arquivo: " & CCur((objItem.FileSize)/(1024*1024)) & " MB" & vbcrlf

    intFileSize=objItem.FileSize

    intTotalSpace= intTotalSpace + intFileSize

     

    end function

     

    • Marcado como Resposta Thiagojr.ramos segunda-feira, 30 de agosto de 2010 17:27
    segunda-feira, 30 de agosto de 2010 17:27