私はpowershellを初めて使用し、ディレクトリ内のzipファイルに含まれるすべてのファイルを一覧表示しようとしています。サードパーティのツールを使用したくありません。
Structure of the directory is
mydir > dir
a.zip
b.zip
c.zip
with each file containing files named 1.txt or 2.txt or 3.txt
I am trying to get an output in the form
a.zip:1.txt
a.zip:2.txt
b.zip:files\3.txt
b.zip:4.txt
c.zip:1.txt
d.zip:10.txt
等々。
残念ながら私の環境は 4.5 ではなく 4.0 です。このコードを書き上げることができましたが、解凍すると多くの追加情報が得られるため、クリーンアップのためにまだ多くの解析が必要です。
$packagedir="C:\Packages"
$unzipcmd = "c:\bins\unzip.exe -l"
$unmatchstr = "*Archive*"
pushd .
cd $packagedir
$filelist= Get-ChildItem -Recurse | Select-Object -ExpandProperty FullName
foreach ($item in $filelist)
{$ziplist = Invoke-Expression "$unzipcmd $item";
foreach ($item2 in $ziplist)
{
if ($item2.Contains("Archive") )
{
}
else
{
echo $item "::" $item2}}
}
popd
これを解析する簡単な方法はありますか。unzip -l の出力には、すべてのファイル名の前にある列ヘッダー、区切り記号、日付、その他の日付など、多くの追加情報があります。