none
Rodar Bat - Para saber quantas extensoes de arquivos tem em uma pasta RRS feed

  • Pergunta

  • Como consigo saber quantitativos de arquivos e extensões totais que me gerem um arquivo txt.

    Ex:

    Quantitativo em uma pasta jpg , png, mp3, doc, xlsx.

    OBRIGADO!

    quinta-feira, 4 de março de 2021 19:46

Todas as Respostas

  • O resultado esperado seria algo assim?

    Resultado.txt:

    JPG = 3
    DOCX = 25
    BMP = 9
    XLSX = 15
    PDF = 23
    EXE = 7

    Ou tipo você quer saber quantas extenções diferentes existem em uma pasta? Se existirem JPG, PNG e BMP

    Resultado.txt

    Extenções: 3


    R. Bohner


    quinta-feira, 4 de março de 2021 22:55
  • Quero saber quantidade de extensões , local do arquivo e o nome deles .
    quinta-feira, 4 de março de 2021 23:44
  • Poderia dar um exemplo de como o resultado deveria ficar e se o resultado devera incluir subpastas ou só a pasta base mesmo.

    R. Bohner

    sexta-feira, 5 de março de 2021 01:14
  • Exemplo :

    Pasta mãe -dados ,

    subpastas : variadas .

    O comando vai varrer todas as pastas e vai me dar o resultado das extensões que eu coloquei para pesquisar e no final me dá um resultado .

    Ex : nome do arquivo.extensao local do arquivo 

           Nome do arquivo.extensao local do arquivo 

    Final - quantidade de arquivos : 5




    • Editado Nechio Neves sexta-feira, 5 de março de 2021 09:16
    sexta-feira, 5 de março de 2021 09:14
  • Exemplo :

    Nome do arquivo . Extensão  local do arquivo 

    Total de arquivos exe: 10

    Em pastas e subpastas .

    Obs.: Gerar um arquivo em txt com esse dados 

    Na verdade eu queria varrer pastas e subpastas e trazer resultados de todas as extensões separado por quantidade .

    sexta-feira, 5 de março de 2021 23:23
  • Veja se seria algo assim:

    @echo off
    chcp 1252 > nul
    setlocal EnableDelayedExpansion
    
    :: QExtTot = Quantidade de extenções totais existentes
    :: NExt[n] = Nome da extenção
    :: QExt[n] = Quantidade de cada extenção
    
    set "Resultado=%~dp0resultado.txt"
    set "ATemp=%temp%\VExtencao\Lista01.txt"
    
    :Inicio
    If "%~1"=="" (set /p "Pasta=Informe a Pasta: ") else (set "Pasta=%~1")
    
    IF /i Not Exist "%Pasta%" goto :Inicio
    
    for %%a in ("%Pasta%") do set "Pasta=%%~dpnxa"
    pushd "%Pasta%"
    
    IF /i exist "%ATemp%" Del /q /f /a "%ATemp%"
    IF /i  not Exist "%temp%\VExtencao" md "%temp%\VExtencao"
    :: for /f "Delims=" %%a in ('(for /f "Delims^=" %%b in ('dir /b /s /a-d') do @echo %%~xb^|%%~fb)') |sort	
    
    for /f "delims=" %%a in ('dir /b /s /a:-d /o:e') do echo %%~xa^|%%~fa>>"%ATemp%"
    
    
    for /f "tokens=1,2 Delims=|" %%a in ('type "%ATemp%" ^|sort') do call :VerificaExtencao "%%~a"
    
    echo Pasta Pai: %Pasta%: >>"%Resultado%"
    echo.>>"%Resultado%"
    for /L %%a in (1,1,%QExtTot%) do (
                                      echo !NExt[%%a]:~1! = !QExt[%%a]!: >>"%Resultado%"
                                      echo.>>"%Resultado%"
                                      for /f "delims=" %%b in ('dir /s /b /a *!NExt[%%a]!') do echo %%~nxb  -^>	%%~fb>>"%Resultado%"
                                      echo.>>"%Resultado%"
                                     
                                     )
    
    exit
    :VerificaExtencao
    IF /i not "%Extencao%"=="%~x1" (
                                    Set /a QExtTot+=1
                                    Set NExt[!QExtTot!]=%~x1
                                    set "Extencao=%~x1"
                                    set /a QExt[!QExtTot!]+=1                                
                                   ) else (
                                           set /a QExt[!QExtTot!]+=1
                                          )
    goto :EOF	


    R. Bohner

    sábado, 6 de março de 2021 20:15
  • Veja se seria algo assim:

    @echo off
    chcp 1252 > nul
    setlocal EnableDelayedExpansion
    
    :: QExtTot = Quantidade de extenções totais existentes
    :: NExt[n] = Nome da extenção
    :: QExt[n] = Quantidade de cada extenção
    
    set "Resultado=%~dp0resultado.txt"
    set "ATemp=%temp%\VExtencao\Lista01.txt"
    
    :Inicio
    If "%~1"=="" (set /p "Pasta=Informe a Pasta: ") else (set "Pasta=%~1")
    
    IF /i Not Exist "%Pasta%" goto :Inicio
    
    for %%a in ("%Pasta%") do set "Pasta=%%~dpnxa"
    pushd "%Pasta%"
    
    IF /i exist "%ATemp%" Del /q /f /a "%ATemp%"
    IF /i  not Exist "%temp%\VExtencao" md "%temp%\VExtencao"
    :: for /f "Delims=" %%a in ('(for /f "Delims^=" %%b in ('dir /b /s /a-d') do @echo %%~xb^|%%~fb)') |sort	
    
    for /f "delims=" %%a in ('dir /b /s /a:-d /o:e') do echo %%~xa^|%%~fa>>"%ATemp%"
    
    
    for /f "tokens=1,2 Delims=|" %%a in ('type "%ATemp%" ^|sort') do call :VerificaExtencao "%%~a"
    
    echo Pasta Pai: %Pasta%: >>"%Resultado%"
    echo.>>"%Resultado%"
    for /L %%a in (1,1,%QExtTot%) do (
                                      echo !NExt[%%a]:~1! = !QExt[%%a]!: >>"%Resultado%"
                                      echo.>>"%Resultado%"
                                      for /f "delims=" %%b in ('dir /s /b /a *!NExt[%%a]!') do echo %%~nxb  -^>	%%~fb>>"%Resultado%"
                                      echo.>>"%Resultado%"
                                     
                                     )
    
    exit
    :VerificaExtencao
    IF /i not "%Extencao%"=="%~x1" (
                                    Set /a QExtTot+=1
                                    Set NExt[!QExtTot!]=%~x1
                                    set "Extencao=%~x1"
                                    set /a QExt[!QExtTot!]+=1                                
                                   ) else (
                                           set /a QExt[!QExtTot!]+=1
                                          )
    goto :EOF	


    R. Bohner

    Sensacional meu caro, vou fazer um teste aqui.

    segunda-feira, 8 de março de 2021 13:58