Aqui está o código que deve fazer o que você quiser (observação: ele preserva todas as estruturas de diretórios. Se você não quiser isso, altere o x
para um e
. Execute isso em powershell)
$cont=true
cd c:\Extracted
$TarFilesToExtract = get-childItem *.tar -Recurse
$TgzFilesToExtract = get-childItem *.tgz -Recurse
foreach($file in $TarfilesToExtract)
{
7z x $file -oC:\Pathfolder
}
foreach($file in $TgzFilesToExtract)
{
7z x $file -oC:\Pathfolder
}
cd c:\Pathfolder
while($cont -eq "true")
{
$TarFilesToExtract = get-childItem *.tar -Recurse
$TgzFilesToExtract = get-childItem *.tgz -Recurse
if($TarFilesToExtract.Length -eq 0 -and $TgzFilesToExtract -eq 0)
{
$cont = "False"
}
else
{
foreach($file in $TarfilesToExtract)
{
7z x $file
}
foreach($file in $TgzFilesToExtract)
{
7z x $file
}
}
}
Uma versão mais curta e simples:
$cont=true
cd c:\Extracted
$files = get-childItem -include *.tar,*.tgz -Recurse
foreach($file in $TarfilesToExtract)
{
7z x $file -oC:\Pathfolder
}
cd c:\Pathfolder
while($cont -eq "true")
{
$files = get-childItem -include *.tar,*.tgz -Recurse
if($files.Length -eq 0)
{
$cont = "False"
}
else
{
foreach($file in $files)
{
7z x $file
}
}
}