使用 Powershell 在单独的文件夹中解压缩 ZIP 文件

巴巴巴吉

我有一个文件夹,里面有几个子文件夹。每个子文件夹可能/可能不包含一些 *.ZIP 文件。

我试图将每个 zip 文件解压缩到与原始 zip 文件同名的单独文件夹中(如果存在,则覆盖该文件夹),然后删除存档。

但是我从下面的代码中得到的是提取父目录中的所有 ZIP 文件,这不是我想要的。

这是我的代码:

foreach ($file in (dir -recurse *.zip)) { & "c:\Program Files\7-zip\7z" x "$file" -aoa }; rm dir -recurse *.zip

有人可以帮我吗?

巴巴巴吉

我刚刚找到了我的问题的完美答案,我愿意将其发布在这里,供将来遇到此线程的任何人使用。

我有几个问题。其中之一是在 PowerShell (v5.1 Windows 10) 中处理长路径。为了规避的是,用户应安装并加载PSAlphaFS在PowerShell的模块,并使用Get-LongChildItem替代Get-ChildItem为此,首先您需要运行以下命令来更新系统上的 PowerShell 执行策略:

Set-ExecutionPolicy RemoteSigned

接下来,您需要通过这个来安装模块:

Install-Module -Name PSAlphaFS

最后用这个加载它:

import-module PSAlphaFS

现在我们准备好摇滚和扮演角色了。只需将以下代码粘贴到 PowerShell 中,它就可以完成这项工作。(记得修改第20行的路径)

Add-Type -AssemblyName System.IO.Compression.FileSystem
function Unzip
{
  param([string]$zipfile, [string]$outpath)
  try {
    [IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
    echo "Done with unzip of file :) "
    $true
  } 
  catch {
    echo "Oops....Can't unzip the file"
    $false
  }
 }


 $flag = $true
while($flag)
{
 $zipFiles = Get-LongChildItem -Path "c:\Downloads\New Folder\FI" -Recurse | Where-Object {$_.Name -like "*.zip"}

 if($zipFiles.count -eq 0)
 {
    $flag = $false
 }

 elseif($zipFiles.count -gt 0)
 {
    foreach($zipFile in $zipFiles)
    {
     #create the new name without .zip
     $newName = $zipFile.FullName.Replace(".zip", "")
    if(Unzip $zipFile.FullName $newName){

        Remove-Item $zipFile.FullName   
    }


    }
 }
 Clear-Variable zipFiles
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用python解压缩文件夹和子文件夹中的zip文件

来自分类Dev

使用CMD行中的7zip解压缩文件夹中的所有文件

来自分类Dev

如何通过Powershell运行7zip来解压缩.rar文件夹?

来自分类Dev

使用Tkinter创建用于创建文件夹并解压缩ZIP文件的GUI

来自分类Dev

使用Tkinter创建用于创建文件夹并解压缩ZIP文件的GUI

来自分类Dev

在Powershell中替换* .zip文件中的文件而无需解压缩(解压缩)

来自分类Dev

如何使用VBscript解压缩多个zip文件夹?

来自分类Dev

使用原始名称解压缩多个 zip 文件夹

来自分类Dev

批处理如何使用 7zip 将多个 zip 文件解压缩到其原始文件夹?

来自分类Dev

使用Swift解压缩zip文件

来自分类Dev

如何解压缩多个 zip 文件夹

来自分类Dev

如何在Python中的Windows文件夹中解压缩zip文件

来自分类Dev

7zip解压缩* .zip在子文件夹中

来自分类Dev

如何在不使用任何外部工具的情况下使用批处理文件压缩(/ zip)和解压缩(/ unzip)文件和文件夹?

来自分类Dev

如何将zip文件解压缩到文件夹中,但要避免重复文件夹?

来自分类Dev

Powershell 将文件解压缩到特定文件夹中

来自分类Dev

如何解压缩我的子目录中的所有 zip 文件夹?

来自分类Dev

批处理文件以将文件内容解压缩到文件夹,并使用zip文件名重命名/前缀内容

来自分类Dev

将文件扩展名更改为 .zip 并从文档文件夹中解压缩文件

来自分类Dev

如何解压缩 zip 文件并将文件复制到不同的不同文件夹中?

来自分类Dev

Java:目标文件夹中的Zip文件大小大于资源中的原始大小,不会解压缩

来自分类Dev

如何将Node.js中的.zip / .rar文件解压缩到文件夹中

来自分类Dev

使用7zip解压缩Unix中压缩的文件

来自分类Dev

将多个zip文件解压缩到具有特定名称的不同文件夹中

来自分类Dev

GNU parallel + gunzip(或7z或bsdtar或解压缩):将每个“ archivename.zip”解压缩到(将要创建)其“ archivename”子文件夹中

来自分类Dev

使用Powershell提取zip文件

来自分类Dev

使用PHP下载后无法解压缩.zip文件

来自分类Dev

使用JAVA ZipFile类解压缩Zip文件

来自分类Dev

如何使用Scala解压缩zip文件?

Related 相关文章

  1. 1

    使用python解压缩文件夹和子文件夹中的zip文件

  2. 2

    使用CMD行中的7zip解压缩文件夹中的所有文件

  3. 3

    如何通过Powershell运行7zip来解压缩.rar文件夹?

  4. 4

    使用Tkinter创建用于创建文件夹并解压缩ZIP文件的GUI

  5. 5

    使用Tkinter创建用于创建文件夹并解压缩ZIP文件的GUI

  6. 6

    在Powershell中替换* .zip文件中的文件而无需解压缩(解压缩)

  7. 7

    如何使用VBscript解压缩多个zip文件夹?

  8. 8

    使用原始名称解压缩多个 zip 文件夹

  9. 9

    批处理如何使用 7zip 将多个 zip 文件解压缩到其原始文件夹?

  10. 10

    使用Swift解压缩zip文件

  11. 11

    如何解压缩多个 zip 文件夹

  12. 12

    如何在Python中的Windows文件夹中解压缩zip文件

  13. 13

    7zip解压缩* .zip在子文件夹中

  14. 14

    如何在不使用任何外部工具的情况下使用批处理文件压缩(/ zip)和解压缩(/ unzip)文件和文件夹?

  15. 15

    如何将zip文件解压缩到文件夹中,但要避免重复文件夹?

  16. 16

    Powershell 将文件解压缩到特定文件夹中

  17. 17

    如何解压缩我的子目录中的所有 zip 文件夹?

  18. 18

    批处理文件以将文件内容解压缩到文件夹,并使用zip文件名重命名/前缀内容

  19. 19

    将文件扩展名更改为 .zip 并从文档文件夹中解压缩文件

  20. 20

    如何解压缩 zip 文件并将文件复制到不同的不同文件夹中?

  21. 21

    Java:目标文件夹中的Zip文件大小大于资源中的原始大小,不会解压缩

  22. 22

    如何将Node.js中的.zip / .rar文件解压缩到文件夹中

  23. 23

    使用7zip解压缩Unix中压缩的文件

  24. 24

    将多个zip文件解压缩到具有特定名称的不同文件夹中

  25. 25

    GNU parallel + gunzip(或7z或bsdtar或解压缩):将每个“ archivename.zip”解压缩到(将要创建)其“ archivename”子文件夹中

  26. 26

    使用Powershell提取zip文件

  27. 27

    使用PHP下载后无法解压缩.zip文件

  28. 28

    使用JAVA ZipFile类解压缩Zip文件

  29. 29

    如何使用Scala解压缩zip文件?

热门标签

归档