Como faço para extrair todos os arquivos dos subdiretórios desta pasta?

Como faço para extrair todos os arquivos dos subdiretórios desta pasta?

Pesquisei este título e foi dada a resposta do seguinte arquivo CMD:

FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
           FOR %%X in (*.rar *.zip) DO (
        "C:\Program Files\7-zip\7z.exe" x %%X
           )
    popd
)

O arquivo cmd funciona muito bem até certo ponto. Exceto que fornece a seguinte mensagem para cada arquivo encontrado com extensão "ZIP" e pergunta:

Would you like to replace the existing file:
Path xxxxxx
Size xxxx
Modified: XXXXXXX
with the file from the archive:
Path: xxxx
Size: xxxxx
? Y<es> \ N<o> \ A<lways> \ S<kip all> \A<u>to rename all \ <Q>uit 

Ele para aí esperando por uma entrada. Mas ele pergunta cada vez que um arquivo é descompactado. Eu iria modificar o arquivo de comando acima com algo que verifica se ?foi encontrado e depois chama um arquivo cmd de resposta que gera um "Y" e sai, o que me levaria de volta ao arquivo de comando original para processar o próximo arquivo com o "zip" que encontrou.

Não sei se estou no caminho certo, mas gostaria de receber ajuda. Não sei qual programa está gerando o ?texto e. É o Windows 7 ou o 7-zip que está perguntando?

Responder1

Não sei qual programa está gerando o "?" e texto

Isso é 7z.exe.

A opção correta a ser usada é -aoa(Substituir todos os arquivos existentes sem aviso).

Exemplo:

"C:\Program Files\7-zip\7z.exe" x %%X -aoa

-ao (modo de substituição) switch

Especifica o modo de substituição durante a extração, para substituir arquivos já presentes no disco.

Syntax

-ao[a | s | t | u ]

Switch    Description
-aoa  Overwrite All existing files without prompt.
-aos  Skip extracting of existing files.
-aou  aUto rename extracting file (for example, name.txt will be renamed to name_1.txt).
-aot  auto rename existing file (for example, name.txt will be renamed to name_1.txt).

Fonte-ao (modo de substituição) switch

Responder2

É o 7-zip que produz o prompt. Parece que o-ytrocarfor 7z.exefaz o que você quer:

Todas as consultas de substituição serão suprimidas e os arquivos no disco com os mesmos nomes de arquivo serão substituídos.

O exemplo da documentação indica que você deve colocar -yapós o caminho fornecido para 7z.exe.

informação relacionada