尝试获取包含例如 30 个 CSV 文件的 zip 文件夹的计数测试文件夹有 30 个 csv 文件
$directoryInfo = Get-ChildItem "$TEST*.csv" | Measure-Object
$directoryInfo.count
所有 30 个 csv 文件将被压缩到一个 zip 文件夹 = TESTZIP1.zip位于 TEST 文件夹内。
如果我尝试运行以下命令来测量压缩文件夹中有多少文件,我得到 0 作为答案
$backUP = Get-ChildItem "$zipfiletestTESTZIP1.zip*.csv" | Measure-Object
$backUP.count
目标:能够计算((zip文件夹中有多少文件,如果zip文件夹的文件数量与TEST文件夹相同,则发送电子邮件。
如果你想计算zip文件中的文件,你可以这样做:
$ZipFile = [System.IO.Compression.ZipFile]::Open("$zipfiletestTESTZIP1.zip",[System.IO.Compression.ZipArchiveMode]::Read)
$ZipFile.Entries.count
$ZipFile.Dispose()
如果要检查 zip 文件内的任何其他内容,可以轻松浏览 $ZipFile 变量的其他参数
$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