Получить количество папок Zip + размер совпадения Powershell - PullRequest
0 голосов
/ 13 июня 2019

Попытка получить количество папок zip, например, с 30 файлами CSV. В тестовой папке 30 файлов csv

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

Все 30 файлов csv будут сжаты в папку zip = TESTZIP1.zip расположенвнутри папки TEST.

Если я попытаюсь выполнить следующее, чтобы измерить, сколько файлов находится внутри сжатой папки, я получу 0 в качестве ответа

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

Цель: способен считать () сколько файлов находится в папке zip, и если в папке zip столько же файлов, сколько в папке TEST, отправляется электронное письмо.

Ответы [ 2 ]

4 голосов
/ 13 июня 2019

Если вы хотите посчитать файлы внутри вашего zip-файла, вы можете сделать это следующим образом:

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

Если вы хотите проверить что-либо еще внутри zip-файла, вы можете легко изучить другие параметры переменной $ ZipFile

0 голосов
/ 14 июня 2019
$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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...