Identifique os arquivos compactados ENCRYPTED na linha de comando

3

Eu tenho diretórios com centenas de arquivos RAR. Atualmente eu uso o Powershell 2.0 com um script que utiliza o utilitário RAR do WinRAR para descompactar os arquivos. A questão é que um pequeno número de arquivos acaba sendo criptografado, o que pausa o script e exige interação. Existe alguma maneira de fazer o seguinte:

  1. Identifique os arquivos criptografados antes de tentar descompactar
  2. Ignorar totalmente os arquivos criptografados
  3. Automatize uma senha incorreta (ou correta) que tentará abrir o arquivo, mas ignore-a se estiver incorreta.

NOTA: Alguns dos arquivos compactados criptografam apenas o conteúdo do arquivo, enquanto outros criptografam o nome do arquivo e o conteúdo do arquivo.

Código relevante:

$files = Get-ChildItem
foreach($file in $files)
{
    if($file.Attributes -eq "Archive")
    {
        $folder = $file.basename
        rar x $file $folder\ -y
    }
}
    
por viking 22.06.2011 / 21:03

2 respostas

3

Experimente o parâmetro -p- :

-p-     Do not query password

Editar: acabou de testar -p- e a extração falha com CRC error in the encrypted file file.ext. Corrupt file or wrong password.

    
por 29.06.2011 / 22:18
0

Faz muito tempo desde que eu usei RAR para qualquer coisa. Eu lembro que tinha uma extensa lista de opções de linha de comando para usar. O switch 'av-' deve desabilitar a verificação de autenticidade, não tendo certeza do tipo de saída que irá gerar. Então o comando rar seria algo como:

rar x $file $folder\ -y av-

Eu sugiro experimentá-lo e ver o que acontece.

    
por 27.06.2011 / 00:14