2016-11-07 5 views
1

2つのフォルダに多数のzipファイルがあります。各フォルダ内の各zipファイルの名前は、some100.zip、some200.zip、some300.zipなどのようになります。約1000のzipファイルについては、some100.zipで終わるなどです。追加ファイルを作成せずにすべてのファイルを1つのファイルに解凍します。

私は各フォルダに入り、some100.zipで終わるすべてのファイルを解凍し、解凍されたコンテンツを連結します(解凍から生成される各ファイルが1つのファイルになることを望まない/必要としません)。

私は次の5つのファイルをテストしようとしていますが、各フォルダ内に圧縮ファイル名と解凍ファイルの名前を付けた5つのフォルダがあります。私はすべての5つのファイルから連結されたデータを持つ1つの単一のファイルが必要でした。

$logList="Folder one", "Folder two"; 

for ($i=0; $i -lt $logList.length; $i++) { 
    cd $logList[$i]; 

    $zips = Get-ChildItem "*.zip" 
    foreach ($z in $zips) { 
     Expand-Archive $z | Where-Object {$_ -match 'some100'} | Set-Content ('unzipped.txt') 
    } 

    cd .. 
} 

答えて

0

これはなんですか?

$tempDir = "D:\TEMP\some100" 
$destinationFile = "D:\TEMP\unzipped.txt" 

$folders = @("Folder One", "Folder Two") 

del $destinationFile -ErrorAction SilentlyContinue 

$folders | %{ 
    $zips = Get-ChildItem $_ -Filter *.zip 

    $zips | %{ 
     if ($_.Name.EndsWith("some100.zip")) 
      { Expand-Archive $_.FullName -DestinationPath $tempDir -Force } 
    } 
} 

Get-Content "$($tempDir)\*" | Add-Content $destinationFile 
関連する問題