Olá, pessoal, compartilho com vocês uma solução para automatizar tarefas com arquivos, de qualquer extensão, no seu computador utilizando recursos do próprio maquinário. Este recurso se chama CMD que é o Command Prompt (Prompt de Comando). Basicamente podemos escrever scripts em txt, salvar este arquivo com a extensão .bat e teremos um pequeno aplicativo para nos ajudar no dia a dia.
O exemplo que utilizarei nessa postagem é uma solução para organizar arquivos nas suas devidas pastas, mas podemos utilizá-lo para muitos fins. Adapte a lógica para a sua realidade.
A – Defina as Regras no Script
Antes de codar de fato, é importante escrever a lógica do que você quer que aconteceça. Para este exemplo eu fiz assim:
Sempre que um arquivo PDF estiver salvo na pasta C:\Usuarios\Fulano\Extratos
faremos a leitura do nome do arquivo e se o quarto e quinto caractere der match com lista abaixo eles serão transferidos para uma pasta destino:
– Se os caracteres forem: 01 transfere p/ a pasta 1.Jan em C:\Usuarios\Fulano\Extratos\1.Jan
– Se os caracteres forem: 02 transfere p/ a pasta 2.Fev em C:\Usuarios\Fulano\Extratos\2.Fev
– Se os caracteres forem: 03 transfere p/ a pasta 3.Mar em C:\Usuarios\Fulano\Extratos\3.Mar
– Se os caracteres forem: 04 transfere p/ a pasta 4.Abr em C:\Usuarios\Fulano\Extratos\4.Abr
– Se os caracteres forem: 05 transfere p/ a pasta 5.Mai em C:\Usuarios\Fulano\Extratos\5.Mai
– Se os caracteres forem: 06 transfere p/ a pasta 6.Jun em C:\Usuarios\Fulano\Extratos\6.Jun
– Se os caracteres forem: 07 transfere p/ a pasta 7.Jul em C:\Usuarios\Fulano\Extratos\7.Jul
– Se os caracteres forem: 08 transfere p/ a pasta 8.Ago em C:\Usuarios\Fulano\Extratos\8.Ago
– Se os caracteres forem: 09 transfere p/ a pasta 9.Set em C:\Usuarios\Fulano\Extratos\9.Set
– Se os caracteres forem: 10 transfere p/ a pasta 10.Out em C:\Usuarios\Fulano\Extratos\10.Out
– Se os caracteres forem: 11 transfere p/ a pasta 11.Nov em C:\Usuarios\Fulano\Extratos\11.Nov
– Se os caracteres forem: 12 transfere p/ a pasta 12.Dez em C:\Usuarios\Fulano\Extratos\12.Dez
A lógica portanto, é SE isso acontecer ENTÃO faça X coisa. É importante treinar essa parte para ter qualidade nos seus códigos. Há vários cursos gratuitos na internet para nos apoiar com isso. Segue o link de um: https://youtu.be/jBIPvXHRYpg?si=q2i7RgJE-goZsDdB
B – Escreva o Script de Acordo com a Sintaxe do CMD
@echo off
setlocal enabledelayedexpansion
rem Define a pasta de origem e destino
set "source_folder=C:\Usuarios\Fulano\Extratos"
set "dest_folder=C:\Usuarios\Fulano\Extratos"
rem Muda para a pasta de origem
cd /d "%source_folder%"
rem Loop através de arquivos PDF
for %%F in (*.pdf) do (
set "filename=%%~nF"
set "month_code=!filename:~3,2!"
echo Processando arquivo: %%F
echo Código do mês: !month_code!
rem Verifica o código do mês e define a pasta correspondente
if "!month_code!"=="01" (
set "target_folder=%dest_folder%\1.Jan"
) else if "!month_code!"=="02" (
set "target_folder=%dest_folder%\2.Fev"
) else if "!month_code!"=="03" (
set "target_folder=%dest_folder%\3.Mar"
) else if "!month_code!"=="04" (
set "target_folder=%dest_folder%\4.Abr"
) else if "!month_code!"=="05" (
set "target_folder=%dest_folder%\5.Mai"
) else if "!month_code!"=="06" (
set "target_folder=%dest_folder%\6.Jun"
) else if "!month_code!"=="07" (
set "target_folder=%dest_folder%\7.Jul"
) else if "!month_code!"=="08" (
set "target_folder=%dest_folder%\8.Ago"
) else if "!month_code!"=="09" (
set "target_folder=%dest_folder%\9.Set"
) else if "!month_code!"=="10" (
set "target_folder=%dest_folder%\10.Out"
) else if "!month_code!"=="11" (
set "target_folder=%dest_folder%\11.Nov"
) else if "!month_code!"=="12" (
set "target_folder=%dest_folder%\12.Dez"
)
rem Verifica se a pasta de destino existe, se não existir, cria a pasta
if not exist "!target_folder!" (
mkdir "!target_folder!"
)
rem Exibe o caminho de destino para depuração
echo Tentando mover para: "!target_folder!\"
rem Move o arquivo para a pasta de destino
move "%%F" "!target_folder!\"
)
echo Transferência concluída!
pause
C – Explicação do código e suas Funções
- @echo off
Função: Desativa a exibição dos comandos no console enquanto o script está sendo executado. Isso torna a saída mais limpa. - setlocal enabledelayedexpansion
Função: Inicia um novo contexto de variável local e ativa a expansão tardia de variáveis, permitindo que variáveis dentro de loops sejam atualizadas e exibidas corretamente. - set “source_folder=…” e set “dest_folder=…”
Função: Define as variáveis source_folder e dest_folder com os caminhos das pastas de origem e destino. O uso de aspas evita problemas com espaços em branco. - cd /d “%source_folder%”
Função: Troca o diretório atual para a pasta de origem especificada. O /d permite mudar o diretório mesmo que ele esteja em uma unidade diferente. - for %%F in (*.pdf) do ( … )
Função: Inicia um loop que itera sobre todos os arquivos PDF na pasta de origem. %%F representa cada arquivo encontrado. - set “filename=%%~nF”
Função: Atribui o nome do arquivo (sem a extensão) à variável filename. - set “month_code=!filename:~3,2!”
Função: Extrai os 2 caracteres a partir da 4ª posição do nome do arquivo (assumindo que o nome contém o código do mês) e armazena na variável month_code. - echo Processando arquivo: %%F
Função: Exibe uma mensagem no console informando qual arquivo está sendo processado. - echo Código do mês: !month_code!
Função: Exibe o código do mês extraído do nome do arquivo no console. - if “!month_code!”==”01” ( … ) else if …
Função: Estrutura condicional que verifica o valor de month_code e define a variável target_folder correspondente ao mês. Se o mês for “01”, define o caminho para a pasta “1.Jan”, e assim por diante. - if not exist “!target_folder!” ( mkdir “!target_folder!” )
Função: Verifica se a pasta de destino (target_folder) não existe. Se não existir, cria a pasta usando mkdir. - echo Tentando mover para: “!target_folder!\”
Função: Exibe o caminho de destino no console, permitindo a depuração. - move “%%F” “!target_folder!\”
Função: Move o arquivo PDF atual (%%F) para a pasta de destino especificada em target_folder. - echo Transferência concluída!
Função: Exibe uma mensagem no console indicando que o processo de transferência foi concluído. - pause
Função: Pausa a execução do script e aguarda que o usuário pressione uma tecla antes de fechar a janela do console.
D – Salvamento e utilização
Agora que você escreveu o código você precisa salvá-lo em uma extensão diferente chamada “.bat”

Depois disso ele aparecerá assim:

Agora é só dar um duplo clique que a função será executada.
E – Conclusão e Possibilidades
A funcionalidade implementada no código permite automatizar a organização de arquivos PDF em pastas específicas, baseando-se em um código de mês extraído do nome do arquivo. Ao executar o script, os arquivos PDF da pasta de origem são analisados e movidos para pastas designadas (como “1.Jan”, “2.Fev”, etc.) dentro da mesma estrutura de diretórios. Isso não apenas economiza tempo, eliminando a necessidade de mover manualmente cada arquivo, mas também melhora a organização dos documentos, facilitando o acesso e a consulta futura.
Explore possibilidades, descreverei aqui algumas outras maneiras de utilizar o CMD (Prompt de Comando) para automação de tarefas:
- Backup de Arquivos:
- Você pode criar um script que copia arquivos de uma pasta de origem para uma pasta de backup.
@echo off xcopy "C:\MinhasImagens\*" "D:\Backup\MinhasImagens\" /E /I - Limpeza de Diretório:
- Remover arquivos antigos de uma pasta que não foram modificados nos últimos 30 dias.
@echo off forfiles /p "C:\MinhasImagens" /s /m *.jpg /d -30 /c "cmd /c del @path" - Concatenar Arquivos de Texto:
- Juntar todos os arquivos de texto em um diretório em um único arquivo.
@echo off copy "C:\MeusTextos\*.txt" "C:\MeusTextos\TodosOsTextos.txt" - Renomear Múltiplos Arquivos:
- Renomear todos os arquivos em um diretório, adicionando um prefixo.
@echo off setlocal enabledelayedexpansion set "prefix=Novo_" for %%F in (*.txt) do ( ren "%%F" "!prefix!%%F" ) - Monitorar Processos:
- Criar um script que verifica se um programa está em execução e, se não estiver, inicia o programa.
@echo off tasklist | find /I "notepad.exe" >nul if errorlevel 1 ( start notepad.exe ) - Agendar Tarefas:
- Você pode usar o
schtaskspara agendar a execução de scripts em horários específicos.
schtasks /create /tn "MeuScriptDiario" /tr "C:\Scripts\MeuScript.bat" /sc daily /st 14:00 - Você pode usar o
Esses são apenas alguns exemplos que mostram como o CMD pode ser utilizado para automatizar diversas tarefas, aumentando a eficiência e reduzindo o trabalho manual. Você pode adaptar esses scripts para atender às suas necessidades específicas e criar soluções personalizadas para o seu fluxo de trabalho
Obrigada!
KHASHIMOTO

Deixe um comentário