Tenha em mente que esses scripts podem ser chamados a partir de uma janela do ISE, pronto PS, SQL Server Job Agent, o Windows Scheduler, através de uma aplicação, etc., e eu usei todos os scripts abaixo em numerosas ocasiões.
Descompacte Todos os arquivos zip em uma pasta
O script abaixo descompacta todos os arquivos em uma pasta, armazena os arquivos descompactados na pasta, e remove todos os arquivos zip. Se queremos mudar este script para apontar para um destino, teríamos apenas adicionar um parâmetro $dest e alterar a linha [System.IO.Compression.ZipFile] :: ExtractToDirectory ($z.FullName, $fold) para [Sistema. IO.Compression.ZipFile] :: ExtractToDirectory ($z.FullName, $dest) .
Function Unzip-Files ($fold)
{
Add-Type -Path "C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.IO.Compressio
n.FileSystem\v4.0_4.0.0.0__b77a5c561934e089\System.IO.Compression.FileSystem.dll"
$a_zps = Get-ChildItem $fold -Filter *.zip
foreach ($z in $a_zps)
{
[System.IO.Compression.ZipFile]::ExtractToDirectory($z.FullName, $fold)
}
## Optional - removes the zips after they've been extracted
$r_zip = $fold + "*.zip"
Remove-Item $r_zip
}
Zip Todos os arquivos em uma pasta para um arquivo zip
Abaixo, eu faço o oposto do código acima, novamente, usando a mesma referência DLL, desta vez usando sua CreateFromDirectory método.
Function Zip-Folder ($fold, $f_zip)
{
Add-Type -Path "C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.IO.Compressio
n.FileSystem\v4.0_4.0.0.0__b77a5c561934e089\System.IO.Compression.FileSystem.dll"
[System.IO.Compression.ZipFile]::CreateFromDirectory($fold, $f_zip)
}
Estes últimos dias estão corridos, mas, voltarei a postar com mais frequência. Toda semana uma novidade!


Deixe um comentário