Se você quiser apenas remover itens na pasta superior, remova a opção -recurse
do comando Remove-Item
.
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\"
Se você quiser apenas remover itens na pasta superior, remova a opção -recurse
do comando Remove-Item
.
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.
Tags powershell