使用Powershell获取许多zip文件的未压缩大小

叶佩森

我需要在磁盘中提取一系列zip文件。它们包含大量数据,因此我需要验证是否有足够的可用空间。有没有办法使用Powershell在不解压缩的情况下找到zip文件内容的未压缩大小?这样,我可以计算每个zip文件的未压缩大小,对其求和,然后检查我的可用空间是否大于此值。

汤玛士

此功能可以做到:

function Get-UncompressedZipFileSize {

    param (
        $Path
    )

    $shell = New-Object -ComObject shell.application
    $zip = $shell.NameSpace($Path)
    $size = 0
    foreach ($item in $zip.items()) {
        if ($item.IsFolder) {
            $size += Get-UncompressedZipFileSize -Path $item.Path
        } else {
            $size += $item.size
        }
    }

    # It might be a good idea to dispose the COM object now explicitly, see comments below
    [System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$shell) | Out-Null
    [System.GC]::Collect()
    [System.GC]::WaitForPendingFinalizers()

    return $size
}

用法示例:

$zipFiles = Get-ChildItem -Path "C:\path\to\zips" -Include *.zip -Recurse
foreach ($zipFile in $zipFiles) {
    Select-Object @{n='FullName'; e={$zipFile.FullName}}, @{n='Size'; e={Get-UncompressedZipFileSize -Path $zipFile.FullName}} -InputObject ''
}

输出示例:

FullName                                Size
--------                                ----
C:\test1.zip                         4334400
C:\test2.zip                         8668800
C:\test3.zip                         8668800

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以获取btrfs文件系统上文件的压缩大小和未压缩大小?

来自分类Dev

是否可以获取btrfs文件系统上文件的压缩大小和未压缩大小?

来自分类Dev

获取 Zip 文件夹的计数 + 匹配大小的 Powershell

来自分类Dev

Zip / Tar文件压缩为更大的大小?

来自分类Dev

.zip文件未解压缩

来自分类Dev

如何在C#(WPF)中获取压缩的zip文件大小

来自分类Dev

如何使用Gulp Zip压缩zip文件

来自分类Dev

如何在python中获取> 4GB .gz文件的未压缩大小

来自分类Dev

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

来自分类Dev

使用Apps Script检查Google云端硬盘中的zip文件内容是否未解压缩?

来自分类Dev

将.obb文件重命名为.zip,然后使用7-zip解压缩和重新压缩,将产生不同大小的文件

来自分类Dev

为什么使用Powershell压缩时Shopify无法接受我主题的zip文件

来自分类Dev

使用Swift解压缩zip文件

来自分类Dev

如何使用JavaScript压缩多个zip文件?

来自分类Dev

使用7-Zip拆分为许多.ZIP文件

来自分类Dev

gzip -l对于未压缩的文件大小返回错误的值

来自分类Dev

如何基于未压缩的文件大小grep打包?

来自分类Dev

使用相同文件的C#压缩在服务器和Windows 10上生成不同大小的输出zip

来自分类Dev

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

来自分类Dev

使用Powershell提取zip文件

来自分类Dev

无需压缩的Zip文件

来自分类Dev

VBScript-获取NTFS压缩文件的实际大小

来自分类Dev

如何将文件系统上未使用的块归零,以最小化压缩磁盘映像的大小?

来自分类Dev

如何使用ant压缩zip文件的顶级文件夹?

来自分类Dev

使用SevenZip提取zip文件中的压缩文件

来自分类Dev

是否有命令列出.zip文件中文件的压缩文件大小?

来自分类Dev

如何确定批处理或vbscript中zip的最终未压缩大小?

来自分类Dev

在Powershell中获取小文件的“磁盘大小”

来自分类Dev

使用NSFileManager获取文件大小

Related 相关文章

  1. 1

    是否可以获取btrfs文件系统上文件的压缩大小和未压缩大小?

  2. 2

    是否可以获取btrfs文件系统上文件的压缩大小和未压缩大小?

  3. 3

    获取 Zip 文件夹的计数 + 匹配大小的 Powershell

  4. 4

    Zip / Tar文件压缩为更大的大小?

  5. 5

    .zip文件未解压缩

  6. 6

    如何在C#(WPF)中获取压缩的zip文件大小

  7. 7

    如何使用Gulp Zip压缩zip文件

  8. 8

    如何在python中获取> 4GB .gz文件的未压缩大小

  9. 9

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

  10. 10

    使用Apps Script检查Google云端硬盘中的zip文件内容是否未解压缩?

  11. 11

    将.obb文件重命名为.zip,然后使用7-zip解压缩和重新压缩,将产生不同大小的文件

  12. 12

    为什么使用Powershell压缩时Shopify无法接受我主题的zip文件

  13. 13

    使用Swift解压缩zip文件

  14. 14

    如何使用JavaScript压缩多个zip文件?

  15. 15

    使用7-Zip拆分为许多.ZIP文件

  16. 16

    gzip -l对于未压缩的文件大小返回错误的值

  17. 17

    如何基于未压缩的文件大小grep打包?

  18. 18

    使用相同文件的C#压缩在服务器和Windows 10上生成不同大小的输出zip

  19. 19

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

  20. 20

    使用Powershell提取zip文件

  21. 21

    无需压缩的Zip文件

  22. 22

    VBScript-获取NTFS压缩文件的实际大小

  23. 23

    如何将文件系统上未使用的块归零,以最小化压缩磁盘映像的大小?

  24. 24

    如何使用ant压缩zip文件的顶级文件夹?

  25. 25

    使用SevenZip提取zip文件中的压缩文件

  26. 26

    是否有命令列出.zip文件中文件的压缩文件大小?

  27. 27

    如何确定批处理或vbscript中zip的最终未压缩大小?

  28. 28

    在Powershell中获取小文件的“磁盘大小”

  29. 29

    使用NSFileManager获取文件大小

热门标签

归档