none
Script de exclusão de arquivos RRS feed

  • Pergunta

  • Boa tarde,

    Preciso de um script que faça a exclusão: Tenho uma pasta no servidor chamada Geral, onde mapeio via script para os colaboradores, com isto preciso agendar a tarefa para exclusão de tudo que tem naquela pasta(arquivos de diferentes extensões, subpastas, etc) em um determinado horário. Esse agendamento vai ser diário, porém não estou conseguindo o script que faça isto.

    Obrigado pela ajuda.

    quarta-feira, 10 de dezembro de 2014 14:42

Respostas

  • Marcos

    Tente assim tche.

    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set strPasta = fso.GetFolder("c:\teste") 
    	
    	Set Colecao = strPasta.Files
    		For Each arquivo in colecao 
    		 	arquivo.Delete 
    		Next
    	
    	sRootPathToDelete = strPasta
    	Set objFSO=CreateObject("Scripting.FileSystemObject")
    	Set objFolder=objFSO.GetFolder(sRootPathToDelete)
    	Set colSubfolders=objFolder.subfolders
    	
    	For Each objSubFolder in colSubFolders
    		Set fld = objFSO.GetFolder(objSubFolder)
    		For Each fl In fld.Files
    			objFSO.deletefile fl.path , True
    		Next
    		objFSO.DeleteFolder(objSubFolder.Path)
    	Next

    quinta-feira, 11 de dezembro de 2014 18:35

Todas as Respostas

  • Ba Marcos.

    Veja se isso lhe ajuda, caso sim tche basta vc criar uma tarefa agendada no seu servidor para que seja executado todos os dias no horário que vc deseja tche.

    Obs. Só se atente que no agendamento vc tem que colocar uma conta que tenha direitos para realizar a ação.

    Codigo.

    Set Wshell = CreateObject("Wscript.Shell")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    set folder = fso.getfolder("c:\teste") 'Aqui voce insere o caminho da pasta raiz
    
    For each SUBfolder in folder.SUBFOLDERS
    	deletetudo(SUBfolder.path)
    	
    	For each arquivo1 in SUBfolder.files
    		fso.deletefile arquivo1.path
    	Next
    
    NEXT
    
    Function deletetudo(Subpastas)
    	Set NEWFOLDER = fso.getfolder(Subpastas)
    
    	For each subfolder2 in NEWFOLDER.SUBFOLDERS 
    
    		For each arquivo2 in subfolder2.files 
    			fso.deletefile arquivo2.path
            	Next 
    
    		fso.deletefolder SUBfolder2.path
    	NEXT
    	
    End Function

    • Sugerido como Resposta Douglas Mageschi quarta-feira, 10 de dezembro de 2014 16:31
    quarta-feira, 10 de dezembro de 2014 15:42
  • Meu amigo,

    Este script apagou todos os arquivos da determinada pasta, porém tinha 2 subpastas que não foram excluídas.

    quinta-feira, 11 de dezembro de 2014 16:56
  • Ba Marcos

    Tinha mas subpastas ou somente estas duas ?

    quinta-feira, 11 de dezembro de 2014 18:26
  • Marcos

    Tente assim tche.

    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set strPasta = fso.GetFolder("c:\teste") 
    	
    	Set Colecao = strPasta.Files
    		For Each arquivo in colecao 
    		 	arquivo.Delete 
    		Next
    	
    	sRootPathToDelete = strPasta
    	Set objFSO=CreateObject("Scripting.FileSystemObject")
    	Set objFolder=objFSO.GetFolder(sRootPathToDelete)
    	Set colSubfolders=objFolder.subfolders
    	
    	For Each objSubFolder in colSubFolders
    		Set fld = objFSO.GetFolder(objSubFolder)
    		For Each fl In fld.Files
    			objFSO.deletefile fl.path , True
    		Next
    		objFSO.DeleteFolder(objSubFolder.Path)
    	Next

    quinta-feira, 11 de dezembro de 2014 18:35