Powershell unrar com curinga

2

Estou tentando extrair cerca de 40 pastas, cada uma contendo um rar, mas nunca fiz isso no powershell. No bash você pode usar */*.rar para extraí-los usando um curinga, mas como faço isso no powershell? Eu tentei algo ao longo

C:\Program Files (x86)\Unrar\UnRAR.exe' x  .\*\*.rar 

Mas erros:

UNRAR 4.10 freeware      Copyright (c) 1993-2012 Alexander Roshal

Cannot read contents of .\*\*.rar
The filename, directory name, or volume label syntax is incorrect.
    
por Lucas Kauffman 02.02.2012 / 15:13

2 respostas

5

Eu uso isso:

$parent = 'c:\myrar_files'

$files = @()

Get-ChildItem $parent -Recurse -Filter "*.rar" | % {

    # Recurse through all subfolders looking for .rar files only.

    $files = $files + $_.FullName
}

foreach ($f in $files) {

    # UnRAR the files. -y responds Yes to any queries UnRAR may have.

   C:\scripts\WinRAR\unrar x -y $f
}
    
por 22.08.2012 / 20:36
4

Teste isso primeiro porque não tenho nada para testá-lo em :

get-childitem -recurse -filter *.rar | %{"C:\Program Files (x86)\Unrar\UnRAR.exe" x $_.fullpath}

Eu não tenho 100% de certeza se o x fará com que ele seja extraído para o diretório atual ou o diretório do arquivo rar, então você pode ter que adicionar um cd aos comandos.

get-childitem -recurse -filter *.rar | %{cd $_.directory; "C:\Program Files (x86)\Unrar\UnRAR.exe" x $_.name}
    
por 02.02.2012 / 16:12

Tags