opexxx icon

bulkUnzipFiles.ps1

opexxx | PRO | 05/21/21 12:22:23 PM UTC (Edited) | 0 ⭐ | 661 👁️ | Never ⏰ | []
PowerShell |

2.11 KB

|

None

|

0 👍

/

0 👎

# bulkUnzipFiles.ps1
 
# This script will take a directory of zip files, unzip them to individual folders, and delete the source zip files
# Contains error handling and logging
# Will fail if source files contain square bracekts
 
$SourceFileLocation="E:\source\*"
$DestinationFileLocation="e:\destination\"
 
$ErrorLogfile=[System.IO.Path]::GetTempFileName()
 
$listOfFiles=get-childitem $SourceFileLocation -Include *.zip
 
Add-Type -AssemblyName System.IO.Compression.FileSystem
function Unzip
{
    param([string]$zipfile, [string]$outpath)
 
    [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
}
 
 
Foreach ($file in $listOfFiles)
{
    
       
    $UnzipErrorMessage=$NULL
    $DeleteErrorMessage=$NULL
        
    $DestinationFolder=$DestinationFileLocation+$File.Basename
    
    write-host $file.fullname  ----->  $DestinationFolder
    try
    {
        Unzip $file.fullname $DestinationFolder -erroraction stop
    }
    Catch
    {
         $UnzipErrorMessage=$_.Exception.Message
         Write-host $UnzipErrorMessage+"`r`n" | Out-File -FilePath $ErrorLogfile -Append
         $file.fullname+" threw "+$UnzipErrorMessage | Out-File -FilePath $ErrorLogfile -Append
         
    }
    if (-Not $UnzipErrorMessage)
    {
        try
        {
            write-host Deleting $file.fullname
            # Remove-item $file.fullname  -erroraction stop -whatif
            Remove-item $file.fullname -erroraction stop
        }
        Catch
        {
            $DeleteErrorMessage=$_.Exception.Message
            Write-Host $DeleteErrorMessage
            $file.fullname+" threw "+$DeleteErrorMessage | Out-File -FilePath $ErrorLogfile -Append
        }
    }
 
}
 
$ErrorLogfile=Get-ChildItem $ErrorLogfile
If ($ErrorLogFile.length -ne 0)
{
    write-error "Errors were encountered.  Error log is here: $ErrorLogFile`r`n"
    get-content $ErrorLogfile
}
else
{    
    remove-item -path $ErrorLogfile
}
 
# references
# https://stackoverflow.com/questions/27768303/how-to-unzip-a-file-in-powershell
# http://anonit.net/create-a-zip-file-on-powershell/

Comments