我在2个文件夹中有大量的zip文件。每个文件夹中的每个zip文件都以诸如some100.zip,some200.zip,some300.zip之类的结尾命名。大约1000个zip文件以some100.zip结尾,依此类推。
我想进入每个文件夹,解压缩以some100.zip结尾的所有文件,并将解压缩的内容(我不希望/需要将解压缩产生的每个文件)连接到一个文件中。
我正在尝试对5个文件进行以下代码测试,但结果是以压缩文件名和每个文件夹中的解压缩文件命名的5个文件夹。我需要1个单独的文件,其中包含来自所有5个文件的连接数据。
$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 :(得分: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