尝试获取具有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文件夹中的文件数量相同,则发送电子邮件。
答案 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