Ir ao conteúdo
  • Cadastre-se

Bat Arquivo .bat para criar pastas com meses e subpastas com dias


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Bom dia,

Dei uma pesquisada no fórum para ver se achava um script parecido com o que preciso, ou algum próximo para que pudesse apenas fazer as alterações necessárias, mas não encontrei nenhum que eu conseguisse editar de modo que funcione como eu quero...

O código que tenho atualmente cria apenas as pastas principais, sem as subpastas com os dias de cada mês:

chcp 65001
MD	"01 - Janeiro"
MD	"02 - Fevereiro"
MD	"03 - Março"
MD	"04 - Abril"
MD	"05 - Maio"
MD	"06 - Junho"
MD	"07 - Julho"
MD	"08 - Agosto"
MD	"09 - Setembro"
MD	"10 - Outubro"
MD	"11 - Novembro"
MD	"12 - Dezembro"

Preciso de um script em arquivo .bat que crie pastas e subpastas, com os meses e dias do ano, da seguinte maneira:

- Pasta principal: "01 - Janeiro" > subpastas "01" até "31"

- Pasta principal: "02 - Fevereiro" > subpastas "01" até "28"...

É possível esse tipo de script?

Agradeço desde já a ajuda 🙂

Link para o comentário
Compartilhar em outros sites

Bom dia veja se isso resolve pra voce

 

@echo off
setlocal enabledelayedexpansion

rem Defina o caminho onde deseja criar as pastas
set "caminho=C:\Caminho-da-sua-pasta"

rem Loop pelos meses
for %%m in (
    "01 - Janeiro"
    "02 - Fevereiro"
    "03 - Marco"
    "04 - Abril"
    "05 - Maio"
    "06 - Junho"
    "07 - Julho"
    "08 - Agosto"
    "09 - Setembro"
    "10 - Outubro"
    "11 - Novembro"
    "12 - Dezembro"
) do (
    rem Extrai o número do mês
    set "mes=!%%m:~0,2!"

    rem Cria a pasta do mês
    mkdir "%caminho%\%%~nxm" 2>nul

    rem Obtenha o número correto de dias para cada mês
    set "num_dias=31"
    if "!mes!"== "02" set "num_dias=28"
    if "!mes!"== "04" set "num_dias=30"
    if "!mes!"== "06" set "num_dias=30"
    if "!mes!"== "09" set "num_dias=30"
    if "!mes!"== "11" set "num_dias=30"

    rem Loop pelos dias do mês
    for /l %%d in (1,1,!num_dias!) do (
        rem Garante que os números do dia tenham dois dígitos
        set "dia=0%%d"
        set "dia=!dia:~-2!"

        rem Cria a subpasta do dia
        mkdir "%caminho%\%%~nxm\!dia!" 2>nul
    )
)
echo Pastas criadas com sucesso.
pause

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

  • Solução

@nathangsc No caso você teria que especificar o ano pois a cada ano bissexto (2016 | 2000 | 2024 | 2028) fevereiro tem 29 dias, fora dos anos bissextos são 28. Veja se é isso:

 

@echo off
SetLocal EnableDelayedExpansion

set Ano=2024
chcp 1252 >nul
for %%a in ("01 - Janeiro" "02 - Fevereiro" "03 - Março" "04 - Abril" "05 - Maio" "06 - Junho" "07 - Julho" "08 - Agosto" "09 - Setembro" "10 - Outubro" "11 - Novembro" "12 - Dezembro") do (
                                                                                                                                                                                              set /a Mes+=1
                                                                                                                                                                                              set Dia=31
                                                                                                                                                                                              call :Criar "%%~a"
                                                                                                                                                                                             )

pause
exit

:Criar
xcopy /d:%Mes%-%Dia%-%Ano% ".*" "%temp%" /L 2>nul 1>nul || (
                                                            set /a Dia-=1
                                                            goto :Criar
                                                           )
for /L %%a in (%Dia%,-1,1) do (
                               set DiaZ=0%%a
                               set DiaZ=!DiaZ:~-2!
                               md "%Ano%\%~1\!DiaZ!"
                              )
goto :EOF

 

 

0b4tpy.gif

 

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!