次のコードを参照してください閲覧、ファイルやグリッドののメタデータを抽出:PowerShellの - それは
# import .NET 4.5 compression utilities
Add-Type -As System.IO.Compression.FileSystem;
$zipArchives = Get-ChildItem "*.zip";
foreach($zipArchive in $zipArchives)
{
$archivePath = $zipArchive.FullName;
$archive = [System.IO.Compression.ZipFile]::OpenRead($archivePath);
try
{
foreach($archiveEntry in $archive.Entries)
{
if($archiveEntry.FullName -notmatch '/$')
{
$tempFile = [System.IO.Path]::GetTempFileName();
try
{
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($archiveEntry, $tempFile, $true);
$windowsStyleArchiveEntryName = $archiveEntry.FullName.Replace('/', '\');
Select-String -pattern "<dc:title>.*</dc:title>" -path (Get-ChildItem $tempFile) | Select-Object @{Name="Path";Expression={Join-Path $archivePath (Split-Path $windowsStyleArchiveEntryName -Parent)}}
#Select-String -pattern "<dc:title>.*</dc:title>" -path (Get-ChildItem $tempFile) | Select-Object Matches
#Select-String -pattern "<dc:subject>.*</dc:subject>" -path (Get-ChildItem $tempFile) | Select-Object Matches
#Select-String -pattern "<dc:date>.*</dc:date>" -path (Get-ChildItem $tempFile) | Select-Object Matches
}
finally
{
Remove-Item $tempFile;
}
}
}
}
finally
{
$archive.Dispose();
}
}
また、私はインターネット上で発見し、zipファイル内の文字列を見つけるために私を助けたコードの修正版です。
私の意図は、このコードを使用してzipファイルからメタデータを抽出することです。
2つのタイプの情報を別々の行に表示する方法を理解できません。 1つのSelect-String...
パイプライン行のみを使用してスクリプトを実行すると、コードは期待通りに機能します。 2番目のSelect-String...
パイプライン行をアクティブ化(コメント解除)すると、2番目の種類の情報(<dc:title>
の値)は表示されず、代わりに空白行が表示されます。
私を助けてください:
1)どのように私はまた、私はコードで使用Select-String | Select-Object
メカニズムを使用してdc:title
値を表示することができます。
2)どのように表形式ですべてのデータIが出力できるので、表は次のようになります。
* ZIP Filename * DC Title *
* zipfile01.zip * Bla Bla 01 *
* zipfile02.zip * Bla Bla 02 *
* zipfile03.zip * Bla Bla 03 *
出力のこの形式は、私にとって最も使用可能になります。
おかげで、アンソニーしかし、この方法は私の問題を解決しません。あなたの答えは私の質問を更新する必要があることを理解してくれました。 ""の最初の "Select-String"は、実際には私のユニークなキーの一種として使用されています。なぜなら、すべてのファイルがメタデータ内にこのタグを持っているからです。私はファイル名と実際の ""を同じ出力行に含めたくない。 完成したコードにはさらに多くのdcタグ( ""、 ""など)が含まれており、各タグにはそれぞれ別の行が必要です。 –
kurkum