加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Powershell提取zip压缩包中的文件

发布时间:2020-12-15 07:13:23 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 ########################################################### # AUTHOR : Marius / Hican - http://www.hican.nl - @hicannl # DATE : 26-06-2012 #

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

###########################################################  
# AUTHOR  : Marius / Hican - http://www.hican.nl - @hicannl   
# DATE    : 26-06-2012   
# COMMENT : Search zip files for specific files and extract 
#           them to a (temp) directory. 
########################################################### 
 
#ERROR REPORTING ALL 
Set-StrictMode -Version latest 
 
#---------------------------------------------------------- 
#STATIC VARIABLES 
#---------------------------------------------------------- 
$search = "xml" 
$dest   = "D:HicanTemp" 
$zips   = "D:HicanTest" 
 
#---------------------------------------------------------- 
#FUNCTION GetZipFileItems 
#---------------------------------------------------------- 
Function GetZipFileItems 
{ 
  Param([string]$zip) 
   
  $split = $split.Split(".") 
  $dest = $dest + "" + $split[0] 
  If (!(Test-Path $dest)) 
  { 
    Write-Host "Created folder : $dest" 
    $strDest = New-Item $dest -Type Directory 
  } 
 
  $shell   = New-Object -Com Shell.Application 
  $zipItem = $shell.NameSpace($zip) 
  $items   = $zipItem.Items() 
  GetZipFileItemsRecursive $items 
} 
 
#---------------------------------------------------------- 
#FUNCTION GetZipFileItemsRecursive 
#---------------------------------------------------------- 
Function GetZipFileItemsRecursive 
{ 
  Param([object]$items) 
 
  ForEach($item In $items) 
  { 
    If ($item.GetFolder -ne $Null) 
    { 
      GetZipFileItemsRecursive $item.GetFolder.items() 
    } 
    $strItem = [string]$item.Name 
    If ($strItem -Like "*$search*") 
    { 
      If ((Test-Path ($dest + "" + $strItem)) -eq $False) 
      { 
        Write-Host "Copied file : $strItem from zip-file : $zipFile to destination folder" 
        $shell.NameSpace($dest).CopyHere($item) 
      } 
      Else 
      { 
        Write-Host "File : $strItem already exists in destination folder" 
      } 
    } 
  } 
} 
 
#---------------------------------------------------------- 
#FUNCTION GetZipFiles 
#---------------------------------------------------------- 
Function GetZipFiles 
{ 
  $zipFiles = Get-ChildItem -Path $zips -Recurse -Filter "*.zip" | % { $_.DirectoryName + "$_" } 
   
  ForEach ($zipFile In $zipFiles) 
  { 
    $split = $zipFile.Split("")[-1] 
    Write-Host "Found zip-file : $split" 
    GetZipFileItems $zipFile 
  } 
} 
#RUN SCRIPT  
GetZipFiles 
"SCRIPT FINISHED" 

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读