Ask Learn
Preview
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Somedays I feel like the Windows PowerShell Evangelist. Anyway, Johnny Halife and I were working on a script that would package up the files for a windows sidebar gadget as a post build event. Turns out you can do this with Windows PowerShell (surprise, surprise).
Once we got this working, I thought it would be cool to turn them into functions and add them to my profile so they are always available.
Being short of time (as always) I figured if I could:
1. Create a New Zip
function New-Zip
{
param([string]$zipfilename)
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(dir $zipfilename).IsReadOnly = $false
}
usage: new-zip c:\demo\myzip.zip
2. Add files to a zip via a pipeline
function Add-Zip
{
param([string]$zipfilename)
if(-not (test-path($zipfilename)))
{
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(dir $zipfilename).IsReadOnly = $false
}
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
foreach($file in $input)
{
$zipPackage.CopyHere($file.FullName)
Start-sleep -milliseconds 500
}
}
usage: dir c:\demo\files\*.* -Recurse | add-Zip c:\demo\myzip.zip
3. List the files in a zip
function Get-Zip
{
param([string]$zipfilename)
if(test-path($zipfilename))
{
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
$zipPackage.Items() | Select Path
}
}
usage: Get-Zip c:\demo\myzip.zip
4. Extract the files form the zip
function Extract-Zip
{
param([string]$zipfilename, [string] $destination)
if(test-path($zipfilename))
{
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
$destinationFolder = $shellApplication.NameSpace($destination)
$destinationFolder.CopyHere($zipPackage.Items())
}
}
usage: extract-zip c:\demo\myzip.zip c:\demo\destination
dir <path_to_gadget_files | add-Zip <path_to_gadget_zip>
Rename-Item <path_to_gadget_zip> <path_to_gadget_zip>.Gadget
Job Done.
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Anonymous
October 15, 2007
PingBack from http://blog.adrianoguerreiro.eti.br/2007/10/15/cmmipraque/
Anonymous
June 12, 2009
I am frequently asked by colleagues and customers for a dump of all of my SharePoint content (presentations,
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign in