Ir ao conteúdo

Posts recomendados

Postado

Queria um script para organizar a área de trabalho pois ela vive uma bagunça e eu esqueço tudo que fica na "biblioteca", procurei muito e não achei, então resolvi fazer o meu..

eu consegui fazer mas adoraria dicas para otimização e dicas de funções novas.

ele organiza por extensão e coloca na pasta desejada na área de trabalho.

 

ele organiza usando nome_de_extensão como a extensão a ser movida e nome_da_pasta como pasta a ser usada/criada na área de trabalho, ex:

IF %i%==14 (
set exten=nome_da_extensao
set tipopasta=nome_da_pasta
goto looperson
)

 

Eu gostaria que ele usasse um arquivo csv para editar por excel/bloc qual pasta porém não sei como fazer isso.

exemplo

 

 

 

script:

REM criando atalho para o desktop e variaveis
set desktopvar="c:\users\%username%\desktop"
set /A i=0
set exten=.txt
set tipopasta=arquivos_de_texto


:looperson

REM verificando existência de pasta.
IF NOT EXIST "%desktopvar%\%tipopasta%" ( md %desktopvar%\%tipopasta%)


REM movendo arquivos.
move %desktopvar%\*%exten% %desktopvar%\%tipopasta%

set /A i=%i%+1
pause
IF %i%==1 (
set exten=.pdf
set tipopasta=arquivos_de_texto
goto looperson
)
IF %i%==2 (
set exten=.docx
set tipopasta=arquivos_de_texto
goto looperson
)
IF %i%==3 (
set exten=.xlsx
set tipopasta=arquivos_de_dados
goto looperson
)
IF %i%==4 (
set exten=.sql
set tipopasta=arquivos_de_dados
goto looperson
)
IF %i%==5 (
set exten=.csv
set tipopasta=arquivos_de_dados
goto looperson
)
IF %i%==6 (
set exten=.doc
set tipopasta=arquivos_de_texto
goto looperson
)
IF %i%==7 (
set exten=.jfif
set tipopasta=arquivos_de_midia
goto looperson
)
IF %i%==8 (
set exten=.jpg
set tipopasta=arquivos_de_midia
goto looperson
)
IF %i%==9 (
set exten=.jpeg
set tipopasta=arquivos_de_midia
goto looperson
)
IF %i%==10 (
set exten=.png
set tipopasta=arquivos_de_midia
goto looperson
)
IF %i%==11 (
set exten=.ogg
set tipopasta=arquivos_de_midia
goto looperson
)
IF %i%==12 (
set exten=.mp3
set tipopasta=arquivos_de_midia
goto looperson
)
IF %i%==13 (
set exten=.mp4
set tipopasta=arquivos_de_midia
goto looperson
)
IF %i%==14 (
set exten=.wav
set tipopasta=arquivos_de_midia
goto looperson
)

 

sei que está feio com um monte de if, dicas? 😅

Postado

@Swalls Na minha mente (insana) ficaria melhor assim

:: Inicia o script
@echo off

    :: Ativa os recursos do batch
    setlocal EnableDelayedExpansion

    :: Variaveis globais
    set "N_PASTA_ARQUIVOS=Tralhas_que_eu_nao_uso"

    :: Chama a função principal
    call :_main
    goto :eof

:: Função principal
:_main
setlocal
    :: Checa se a pasta dos arquivos existe
    if not exist %N_PASTA_ARQUIVOS% (
        mkdir %N_PASTA_ARQUIVOS%
    )
    
    :: Encontra todos os arquivos na pasta 
    call :buscaArquivosExtensao png.txt,png,quantidade

    :: Move para a nova pasta
    if quantidade gtr 0 (
        for /F "delims=" %%a in (png.txt) do (
            move %%a "%N_PASTA_ARQUIVOS%\"
        )
        echo %quantidade% arquivos movidos para %N_PASTA_ARQUIVOS%
        :: Apaga o arquivo temporario com os nomes dos arquivos
        del /F /Q png.txt
    ) else (
        echo Nenhum arquivo com a extensão png foi encontrado
    )

endlocal
exit /B 0
:: Fim da função principal

:: Passe o nome do arquivo e a extensão dos arquivos a ser procurado
:: O terceiro parametro da função passa a quantidade de arquivos
:: encontrados.
:buscaArquivosExtensao
    :: Cria o arquivos com os nomes de todos os arquivos encontrados
    if exist %~1 (
        exit /B 0
    )
    type nul>%~1
    
    :: Usado na contagem dos arquivos 
    set /A contador=0
    :: Busca os arquivos por extensão
    for %%a in (*) do (
        :: Coloca os nomes dos arquivos no arquivo com os nomes
        if "%%~xa"==".%~2" (
            echo %%a>>%~1
            set /A contador+=1
        )
    )

    set /A "%~3=!contador!"
    
exit /B 0

não testei no windows para ver se funciona (na real eu abandonei o windows já faz tempo) só tenho maquinas com linux, mas eu tenho quase certeza que funciona.

 

Para adaptar para um banco de dados (CSV) seria a mesma ideia que eu fiz percorrendo o arquivo temporario.

Mas aí essa parte eu já não sei, talvez uma ajudinha do @ricardo_br faça a magica acontecer 😛

  • Amei 1
Postado

eu poderia copiar tudo mas minha prioridade é entender e muita coisa eu não entendi, vou dar uma lida e ir atualizando meu código no tempo livre até chegar nesse ponto.

 

mas acima de tudo, muito obrigado pela ajuda!

  • Curtir 1
Postado
16 horas atrás, Swalls disse:

eu poderia copiar tudo mas minha prioridade é entender e muita coisa eu não entendi, vou dar uma lida e ir atualizando meu código no tempo livre até chegar nesse ponto.

 

mas acima de tudo, muito obrigado pela ajuda!

Eu recomendaria você fazer em uma linguagem de programação (ou em powershell), porque batch e uma tristeza no conceito organização.

 

O meu exemplo que eu postei estava errado 😕

Na linha que cria a pasta eu coloque um comando linux (eh costume).

Aqui está o exemplo final exemplo.zip testei no windows Xp dessa vez.  

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!