anonit

Bulk Unzipping files using Powershell

Feb 17th, 2018
171
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/
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×