none
.bat para extrair 7z em pastas que iniciam como mesmo nome RRS feed

  • Pergunta

  • Olá pessoal bom dia estou com um problema... tenho que extrair um arquivo .7z em várias pastas que iniciam com mesmo nome seguido por underline, exemplo: teste_010001, teste_010002, teste_020001 e assim por diante.

    Queria saber como posso criar um .bat para identificar que quero extrair os arquivos em pastas que comecem com teste_

    Obrigado desde já.

    quarta-feira, 13 de novembro de 2019 13:10

Respostas

  • Veja se o script atuaria da forma que você esperaria:

    No caso os arquivos seriam extraidos da seguinte forma:

    banana.7z -> banana_499430

    fotos.7z -> fotos_4909434309

    fotos.7z -> fotos_9584984589

    @echo off
    SetLocal EnableDelayedExpansion
    set Pasta=C:\sites
    set rar=%Programfiles%\winrar\rar.exe
    
    for %%a in (%Pasta%\*.7z) do (
    for /f "Delims=" %%b in ('dir /ad /b "%Pasta%\%%~na_*"') do "%rar%" x "%%a" "%Pasta%\%%b"
    )

    * No caso é usado o Winrar para descompactar os arquivos *.7z portanto tem que ter o winrar instalado.

    • Editado Ricardo Bohner S quinta-feira, 21 de novembro de 2019 22:43
    • Marcado como Resposta Tio Bill quinta-feira, 28 de novembro de 2019 20:55
    quinta-feira, 21 de novembro de 2019 22:37

Todas as Respostas

  • Deixa eu ver se entendi, por exemplo se o nome arquivo for teste_.7z os arquivos demvem ser extraidos para todas as pastas de uma determinada estrutura de pastas que começem com teste_* ?
    quinta-feira, 14 de novembro de 2019 11:14
  • Oi Ricardo obrigado pela resposta!

    Exatamente isso mesmo... gostaria de extrair esse arquivo .7z em todas as pastas que estão nessa estrutura:

    C:\sites\teste_15248874
    C:\sites\teste_58495441

    todos começam com teste_ seguido de um número aleatório. Eu já faço isso de forma que coloco todos endereços de forma manual, e como todas as pastas começam com teste_ queria automatizar ainda mais.

    Mais uma vez obrigado!

    quarta-feira, 20 de novembro de 2019 10:19
  • Veja se o script atuaria da forma que você esperaria:

    No caso os arquivos seriam extraidos da seguinte forma:

    banana.7z -> banana_499430

    fotos.7z -> fotos_4909434309

    fotos.7z -> fotos_9584984589

    @echo off
    SetLocal EnableDelayedExpansion
    set Pasta=C:\sites
    set rar=%Programfiles%\winrar\rar.exe
    
    for %%a in (%Pasta%\*.7z) do (
    for /f "Delims=" %%b in ('dir /ad /b "%Pasta%\%%~na_*"') do "%rar%" x "%%a" "%Pasta%\%%b"
    )

    * No caso é usado o Winrar para descompactar os arquivos *.7z portanto tem que ter o winrar instalado.

    • Editado Ricardo Bohner S quinta-feira, 21 de novembro de 2019 22:43
    • Marcado como Resposta Tio Bill quinta-feira, 28 de novembro de 2019 20:55
    quinta-feira, 21 de novembro de 2019 22:37
  • Deu certo Ricardo, muito obrigado mesmo!!!
    quinta-feira, 28 de novembro de 2019 20:55