none
Script de Deletar RRS feed

  • Pergunta

  • Ola,

     

    Eu tenho um script de limpar uma Partição, tira tudo que tem dentro dela, porem ele esta com algum problema.

    A partição é P: que esta localizada no proprio DC.

     

    <code>

    Dim arrFolders()
    intSize = 0

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

    strFolderName = "P:\"

    Set colSubfolders = objWMIService.ExecQuery _
        ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
            & "Where AssocClass = Win32_Subdirectory " _
                & "ResultRole = PartComponent")

    ReDim Preserve arrFolders(intSize)
    arrFolders(intSize) = strFolderName
    intSize = intSize + 1

    For Each objFolder in colSubfolders
        GetSubFolders strFolderName
    Next

    Sub GetSubFolders(strFolderName)
        Set colSubfolders2 = objWMIService.ExecQuery _
            ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
                & "Where AssocClass = Win32_Subdirectory " _
                    & "ResultRole = PartComponent")

        For Each objFolder2 in colSubfolders2
            strFolderName = objFolder2.Name
            ReDim Preserve arrFolders(intSize)
            arrFolders(intSize) = strFolderName
            intSize = intSize + 1
            GetSubFolders strFolderName
        Next
    End Sub

    For i = Ubound(arrFolders) to 0 Step -1
        strFolder = arrFolders(i)
        strFolder = Replace(strFolder, "\", "\\")
        Set colFolders = objWMIService.ExecQuery _
            ("Select * from Win32_Directory where Name = '" & strFolder & "'")

        For Each objFolder in colFolders
            errResults = objFolder.Delete
        Next
    Next

    </code>

     

    O erro esta na Linha 28.

    Se ngm conseguir concertar esse codigo, por favor ajudem a construir um novo.

     

    Att.

    Humberto

    quarta-feira, 30 de janeiro de 2008 19:34

Todas as Respostas

  • Cara se o script for só para deletar este está funcionando bem comigo


    dim filesys
    Set filesys = CreateObject("Scripting.FileSystemObject")
    filesys.DeleteFile "P:\*"
    filesys.Deletefolder "P:\*"
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.SendKeys "{F5}"
    WScript.Echo("Arquivos deletados com sucesso!")


    Este script vai deletar tudo da sua unidade "P:"
    quarta-feira, 30 de janeiro de 2008 20:27
  • Humberto usa esse script aqui Wink

     

    strPasta="P:\"

    set FSo = CreateObject("Scripting.FileSystemObject")

    Apagar_Arquivos(strPasta)

     

    Sub Apagar_Arquivos(Pasta)

     set folder = FSO.getFolder (Pasta)


     if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       Apagar_Arquivos SubFolder
      next
     end if


     for each file in folder.files
     set objFile = FSO.GetFile(file)
       File.delete
     next

    end sub

    quinta-feira, 31 de janeiro de 2008 11:24
  • Bom

     

    No script do PDSEVEN deu um erro que foi o seguinte:

     

     

    E no do Laerte foi o seguinte erro:

     

     

    Eu acho que é erro de permissionamento no P: mas estou postando pra alguem me confirmar isso.

     

    Att.

    Humberto

     

    quinta-feira, 31 de janeiro de 2008 13:18
  • Sim, sim, Humberto, isso é erro de permissão, está dizendo que você não tem permissão para deletar o arquivo Wink

     

    quinta-feira, 31 de janeiro de 2008 13:32
  • Laerte,

     

    Esse codigo não funcionaria não?

     

    Set oShell = CreateObject("Wscript.Shell")
    oShell.Run "cmd /c del /F /S /Q d:\*.*", 0, False

     

    sexta-feira, 1 de fevereiro de 2008 15:14
  • não, não, ele irá deletar todos os arquivos que estão na raiz, os que estão nas subpastas ficará intacto Wink

    sexta-feira, 1 de fevereiro de 2008 19:19