我有.zip
个文件file.zip
。此zip文件中有很多文件,只有一个扩展名为.txt
的文本文件。我想读一下这个文本文件的名称。有没有办法在不在Powershell或C#中提取zip文件的情况下读取名称?
答案 0 :(得分:1)
如果你有.Net 4.5
,你可以运行这样的东西[Reflection.Assembly]::LoadWithPartialName( "System.IO.Compression.FileSystem" );
$zipContens = [System.IO.Compression.ZipFile]::OpenRead("C:\path\file.zip");
$zipContens.Entries | % {
if ($_.Name -match "TheFileYouAreLookingFor.txt"){
# found, your code block
}
}
这个问题会有所帮助: Powershell to search for files based on words / phrase but also Zip files and within zip files
答案 1 :(得分:1)
您可以使用Shell.Application
对象枚举zip文件中的文件名:
$zip = 'C:\path\to\file.zip'
$app = New-Object -COM 'Shell.Application'
$app.NameSpace($zip).Items() | ? { $_.Name -like '*.txt' } | select -Expand Name