Excluir exclusivo para excluir a maioria das árvores de arquivos, mas manter as específicas

1

Estou tentando criar um script que, ao receber o arquivo específico, o descompacta, examina o arquivo descompactado e exclui todo o conteúdo, exceto duas ou três pastas específicas com seu conteúdo. Em seguida, rezipá-lo. Im no ponto em que o zipping, descompactação e exclusão funciona, mas quando a exclusão é executada, olha através de tudo, não apenas a camada superior de pastas. Alguma sugestão? Heres meu roteiro até agora:

$filesToZip="c:\temp\powertest\*" 
$zipfilename = "c:\temp\ziptest.zip" 
$originalzipfile = "c:\temp\powertest.zip"
$extractionlocation = "c:\temp\"


function Expand-ZIPFile($file, $destination)
{
    $shell = new-object -com shell.application
    $zip = $shell.NameSpace($file)
    foreach($item in $zip.items())
        {
        $shell.Namespace($destination).copyhere($item)
        }
}
Expand-ZIPFile –File $originalzipfile –Destination $extractionlocation

# replace "New folder" and "New Text Document.txt" with folders and documents you dont want deleted specifiying the file extensions seperated by commas
Remove-Item -recurse $filesToZip -exclude 'New folder' , 'New Text Document.txt' 

$value = $null

 if(-not (test-path($zipfilename)))
 {
      set-content $zipfilename $value 
           #("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
      (dir $zipfilename).IsReadOnly = $false    

 }

 $shellApplication = new-object -com shell.application
 $zipPackage = $shellApplication.NameSpace($zipfilename)
 $files = dir $filesToZip

 foreach($file in $files) 
 { 
      $zipPackage.CopyHere($file.FullName)
      Start-sleep -milliseconds 500
 }
remove-item -recurse "C:\temp\powertest\" 
    
por Justin 03.04.2015 / 18:58

2 respostas

0

Se você quiser apenas remover itens na pasta superior, remova a opção -recurse do comando Remove-Item .

link

    
por 03.04.2015 / 20:15
0

Além disso, muitas vezes você pode usar as opções -include ou -exclude com comandos que podem ajudá-lo a dizer apenas obter esses arquivos ou obter todos, mas esses arquivos específicos.

    
por 03.04.2015 / 22:41

Tags