diff --git a/Tools.ps1 b/Tools.ps1 index 8f8b988..d9d120d 100644 --- a/Tools.ps1 +++ b/Tools.ps1 @@ -538,5 +538,49 @@ function Remove-File ([Parameter(ValueFromPipeline=$true)][string]$path) { } } +# Function to ZIP a file or directory +function Zip-Object ([Parameter(ValueFromPipeline=$true)][string]$path) { + If ( $(Get-Item $path) -is [System.IO.DirectoryInfo] ) { + $dest = '{0}\{1}.zip' -f $(Split-Path -Parent $path),$(Split-Path -Leaf $path) + LogMsg "Creating zip file of: ${path}" + Try { + Add-Type -Assembly "System.IO.Compression.FileSystem" + [IO.Compression.ZipFile]::CreateFromDirectory($path, $dest) + } + Catch { LogErr $_.Exception.Message } + If ( Test-Path $dest ) { Return $dest } Else { Return $false } + } + ElseIf ( $(Get-Item $path) -is [System.IO.FileInfo] ) { + $dir = $path.Substring(0, $path.LastIndexOf('.')) + Try { + LogMsg "Creating directory: ${path}" + New-Item -ItemType Directory -Path $dir -ErrorAction Stop | Out-Null + LogMsg "Moving ""${path}"" into ""${dir}""" + Move-Item -Path $path -Destination $dir -Force -ErrorAction Stop | Out-Null + } + Catch { LogErr $_.Exception.Message } + Zip-Object $dir + } + Else { LogMsg "Could not determine the file/folder status: ${path}" } +} + +# Function to UNZIP a file or directory +function Unzip-Object ([Parameter(ValueFromPipeline=$true)][string]$path) { + $ext = [System.IO.Path]::GetExtension($path) + If ( $ext -eq ".zip" ) { + LogMsg "Extracting ""${path}"" to ""${dest}""" + $dest = Split-Path -Parent $path + Try { + Add-Type -Assembly "System.IO.Compression.FileSystem" + [IO.Compression.ZipFile]::ExtractToDirectory($path, $dest) + } + Catch { LogErr $_.Exception.Message } + } + Else { LogMsg "The path specified is not a zip file: ${path}" } +} + Setup-MSPDirectories -Setup-LogFile \ No newline at end of file +Setup-LogFile + +#Zip-Object "C:\Users\dyoder\Desktop\wifi" +Unzip-Object "C:\Users\dyoder\Desktop\wifi.zip" \ No newline at end of file