Eu fiz no passado alguns scripts em Batch, então resolvi de criar de forma meio descompromissada esse tutorial simples. Sinta-se a vontade para experimentar, testar e opinar sobre a tecnologia e sobre seus usos, e tirar dúvidas nos comentários.
Por que usar uma tecnologia velha como essa?
Os scripts em Batch realmente são uma tecnologia antiga e que foi ignorada por muito tempo pela Microsoft, tanto que diversos recursos que hoje existem no BASH e no PowerShell simplesmente não existem no Batch, como laços de repetição e coisas do tipo (ou até existem, mas apenas em sua forma mais primitiva, com aglomerados de GOTO). Então talvez você esteja pensando: “Por que eu deveria estudar uma coisa tão velha quanto scripts Batch?
A resposta é que esses scripts servem para realizar ações automatizadas, como limpeza de pastas, conversões de arquivos, liberação ou bloqueio de portas de rede e coisas do tipo, e tudo com o mínimo de interferência do usuário, o que também reduz erros humanos. Além disso, independente da versão do sistema Windows, o Batch está entre as dependências, então não é tão difícil de criar um script compatível com versões anteriores do Windows, ou adaptá-lo para versões mais modernas.
Os scripts Batch possuem outras características, possibilitando, por exemplo, a interação com o usuário, o que pode ser útil, por exemplo, em scripts que possibilitam executar mais de uma ação, como scripts para encriptar e decriptar dados, ou mesmo jogos simples (sim, você pode criar jogos rudimentares em Batch, que vão funcionar como jogos de terminal antigos em BASIC ou coisas do tipo).
O que é um Batch Script?
Um script em Batch é, em resumo, uma pilha de comandos que está dentro de um arquivo, e serão executados do início ao fim, com sua execução sendo pontualmente alterada por laços condicionais ou de controle. Sua origem vem de antes do sistema operacional MS-DOS, e resistiu à passagem do tempo até o Windows 10, mesmo com as constantes ameaças a seu papel como principal linguagem para a criação de scripts automatizados da Microsoft com linguagens como Powershell e VBScript. Sua principal vantagem é sua simplicidade, e sua principal desvantagem é o fato de ser uma linguagem arcaica.
Comandos do DOS
Assim como outras linguagens de script, o Batch Script não passa de um arquivo com um monte de comandos de terminal. Apenas isso, não existe um meio termo. Assim, podemos entender que tudo que é possível fazer via CMD, como criar pastas e arquivos, executar programas e até travar o sistema operacional, também é possível fazer com um programa Batch, e tudo que não é possível fazer via CMD também não é possível fazer via Batch (com raras exceções).
Os arquivos Batch apresentam outras vantagens, como evitar falhas por erros da parte do usuário, agilizar tarefas cotidianas e repetitivas e possibilitar a visualização de sequências complexas de comandos de configuração de ambiente para iniciantes.
Comecemos recapitulando alguns dos comandos mais básicos do sistema:
COMANDO RESULTADO ECHO Escreve na tela ECHO OFF Oculta o código executado pelo sistema ECHO ON Volta a exibir o código executado pelo sistema ECHO. Pula uma linha CLS Limpa o console START Executa outro programa PAUSE Pausa a execução do programa até que alguma tecla seja digitada REM Indica o início de um comentário que se extenderá até o final da linha
Olá, mundo!
E vamos agora ao clássico “Hello World” que a grande maioria das linguagens de programação implementa. O seu programa será assim:
echo Hello World
pause
Salve isso em um arquivo chamado Hello.bat e dê dois cliques nele.
Comecemos percebendo alguns aspectos da linguagem. Em primeiro lugar, para mensagens, não é necessário colocar aspas simples ou duplas, somente jogar ali o que você quer. Em segundo, os comandos de Batch Script não diferenciam letras maiúsculas e minúsculas (apenas em mensagens ou coisas do tipo mais específicas). E, em terceiro, provavelmente seu CMD ficou assim:
C:> echo Hello World
Hello World
Não era o nosso objetivo, afinal, o programa deveria agir ocultando esses comandos, e não simplesmente continuar listando eles na tela. Edite seu arquivo e deixe-o assim:
@echo off
echo Hello World
pause
Agora os comandos executados pelo batch vão ficar ocultos no sistema. Simples, não?
Executando o programa notepad.exe
Digamos que você queira abrir o Notepad no Windows. Como o programa notepad.exe já está dentro do PATH do sistema, você não precisa fazer nada além de executá-lo:
@echo off
rem inicializa o notepad do Windows
start notepad.exe
E aí? Gostou da aula? Conta pra mim nos comentários 😊😄