Advertisement
anonit

Bulk Unzipping files using Powershell

Feb 17th, 2018
629
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # bulkUnzipFiles.ps1
  2.  
  3. # This script will take a directory of zip files, unzip them to individual folders, and delete the source zip files
  4. # Contains error handling and logging
  5. # Will fail if source files contain square bracekts
  6.  
  7. $SourceFileLocation="E:\source\*"
  8. $DestinationFileLocation="e:\destination\"
  9.  
  10. $ErrorLogfile=[System.IO.Path]::GetTempFileName()
  11.  
  12. $listOfFiles=get-childitem $SourceFileLocation -Include *.zip
  13.  
  14. Add-Type -AssemblyName System.IO.Compression.FileSystem
  15. function Unzip
  16. {
  17.     param([string]$zipfile, [string]$outpath)
  18.  
  19.     [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
  20. }
  21.  
  22.  
  23. Foreach ($file in $listOfFiles)
  24. {
  25.    
  26.        
  27.     $UnzipErrorMessage=$NULL
  28.     $DeleteErrorMessage=$NULL
  29.        
  30.     $DestinationFolder=$DestinationFileLocation+$File.Basename
  31.    
  32.     write-host $file.fullname  ----->  $DestinationFolder
  33.     try
  34.     {
  35.         Unzip $file.fullname $DestinationFolder -erroraction stop
  36.     }
  37.     Catch
  38.     {
  39.          $UnzipErrorMessage=$_.Exception.Message
  40.          Write-host $UnzipErrorMessage+"`r`n" | Out-File -FilePath $ErrorLogfile -Append
  41.          $file.fullname+" threw "+$UnzipErrorMessage | Out-File -FilePath $ErrorLogfile -Append
  42.          
  43.     }
  44.     if (-Not $UnzipErrorMessage)
  45.     {
  46.         try
  47.         {
  48.             write-host Deleting $file.fullname
  49.             # Remove-item $file.fullname  -erroraction stop -whatif
  50.             Remove-item $file.fullname -erroraction stop
  51.         }
  52.         Catch
  53.         {
  54.             $DeleteErrorMessage=$_.Exception.Message
  55.             Write-Host $DeleteErrorMessage
  56.             $file.fullname+" threw "+$DeleteErrorMessage | Out-File -FilePath $ErrorLogfile -Append
  57.         }
  58.     }
  59.  
  60. }
  61.  
  62. $ErrorLogfile=Get-ChildItem $ErrorLogfile
  63. If ($ErrorLogFile.length -ne 0)
  64. {
  65.     write-error "Errors were encountered.  Error log is here: $ErrorLogFile`r`n"
  66.     get-content $ErrorLogfile
  67. }
  68. else
  69. {    
  70.     remove-item -path $ErrorLogfile
  71. }
  72.  
  73. # references
  74. # https://stackoverflow.com/questions/27768303/how-to-unzip-a-file-in-powershell
  75. # http://anonit.net/create-a-zip-file-on-powershell/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement