获取一个Zip文件夹的数量+匹配大小的Powershell

时间:2019-06-13 19:15:46

标签: powershell

尝试获取具有30个CSV文件的zip文件夹的计数 测试文件夹中有30个csv文件

$directoryInfo = Get-ChildItem "$TEST\*.csv" | Measure-Object
$directoryInfo.count

所有30个csv文件将被压缩到位于TEST文件夹内的zip文件夹= TESTZIP1.zip中。

如果我尝试运行以下命令来测量压缩文件夹中有多少文件,我将得到0作为答案

 $backUP = Get-ChildItem "$zipfiletest\TESTZIP1.zip\*.csv" | Measure-Object
 $backUP.count

目标:能够Count()zip文件夹中有多少文件,并且如果zip文件夹中的文件数量与TEST文件夹中的文件数量相同,则发送电子邮件。

2 个答案:

答案 0 :(得分:4)

如果您要对zip文件中的文件进行计数,可以这样做:

$ZipFile = [System.IO.Compression.ZipFile]::Open("$zipfiletest\TESTZIP1.zip",[System.IO.Compression.ZipArchiveMode]::Read)
$ZipFile.Entries.count
$ZipFile.Dispose()

如果要检查zip文件中的其他内容,可以轻松浏览$ ZipFile变量的其他参数

答案 1 :(得分:0)

$fileToCheck = Get-Item -Path (Join-Path -Path "C:\Users\" -ChildPath test.zip) - ErrorAction SilentlyContinue

$ZipFiles = Get-ChildItem -Path $fileToCheck -Recurse -Filter '*.zip'
$Shell = New-Object -ComObject Shell.Application

$Results = foreach( $fileToCheck in $ZipFiles ){
  $DATCount = $Shell.NameSpace($fileToCheck.FullName).Items() |
    Where-Object { $_.Name -match '\.dat$' } |
    Measure-Object |
    Select-Object -ExpandProperty count