我是powershell的新手。我有一个zip文件,结构如下:
file.zip
Folder1
, 包含10个文件的文件夹
, 包含5个文件的文件夹
Folder2
,,文件夹21包含7个文件
log.txt
我的目标是得到以下结果:
-Folder1包含15个文件
-Folder2包含7个文件
感谢您的帮助
此代码不直接从.zip文件中读取。据我所知,这样做需要更多的工作。相反,它将存档的内容提取到一个临时目录中,递归地获取每个目录中的文件夹和项数,然后删除临时目录。
Add-Type -Assembly "System.IO.Compression.FileSystem"
$zipFile = "path-to-zip-file"
$outPath = "path-to-temp-dir"
$hash = @{}
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipFile, $outPath)
Get-ChildItem -Path $outPath -Recurse -Directory | ForEach-Object {
$hash.Add($_.FullName,((Get-ChildItem -Path $_.FullName | Measure-Object).Count))
}
Write-Host $hash
Remove-Item $outPath -Recurse