O scripting batch no Windows envolve a criação de arquivos com extensão .bat ou .cmd, que executam uma sequência de comandos de forma automatizada. Estes scripts são úteis para tarefas repetitivas e administração de sistemas.
Comandos Básicos Internos
Ao iniciar um script, é comum desativar a exibição de comandos para manter a saída limpa. O operador @ suprime a exibição do comando atual, enquanto echo off desativa a exibição para todos os comandos subsequentes.
@echo off
echo Olá, este é um script batch simples!
pause
Este snippet exibe uma mensagem e aguarda a entrada do usuário antes de fechar.
Comandos Essenciais
REMe::: Usados para comentários.::é mais conciso, mas pode falhar em contextos específicos.ECHO: Exibe mensagens ou controla a exibição de comandos. Useecho.para imprimir uma linha em branco.PAUSE: Interrompe a execução e exibe uma mensagem padrão. Para personalizar, useecho Mensagem & pause > nul.IF: Condições baseadas em erros, comparações de strings ou existência de arquivos. Exemplo:if exist "arquivo.txt" echo O arquivo existe.GOTO: Desvia a execução para um rótulo definido por:nome_rotulo.FOR: Itera sobre conjuntos de dados. Suporta parâmetros como/dpara diretórios,/rpara recursão,/lpara sequências numéricas e/fpara análise de arquivos.
Símbolos Especiais
Símbolos como > e >> são usados para redirecionamento de saída, onde > sobrescreve e >> adiciona ao arquivo. O caractere | canaliza a saída de um comando para outro, e ^ escapa símbolos especiais.
@echo off
dir > lista.txt
echo Nova linha >> lista.txt
Neste exemplo, o comando dir é redirecionado para um arquivo, e uma nova linha é adicionada.
Trabalhando com Variáveis
Variáveis no batch podem ser do sistema ou definidas pelo usuário. Variáveis do sistema, como %CD% ou %USERNAME%, são predefinidas. Variáveis personalizadas são criadas com o comando set.
@echo off
set nome=Maria
echo Olá, %nome%!
set /p entrada=Digite algo:
echo Você digitou: %entrada%
O comando set /p permite entrada interativa do usuário.
Operações com Variáveis
O comando set /a realiza operações aritméticas. Por exemplo, set /a resultado=5+3 armazena 8 na variável resultado. Para substituição de strings, use %var:antigo=novo%.
@echo off
set texto=exemplo
set novo=%texto:x=y%
echo %novo%
Isso substitui "x" por "y" na variável, resultando em "eyemplo".
Laços e Estruturas de Controle
O comando FOR /L gera sequências numéricas. Por exemplo, iterar de 1 a 5:
@echo off
for /l %%i in (1,1,5) do echo Número: %%i
Para processar arquivos, use FOR /F para ler conteúdo linha por linha, com opções de delimitadores e tokens.
@echo off
for /f "tokens=1,2 delims=," %%a in (dados.csv) do echo %%a - %%b
Este exemplo processa um arquivo CSV, dividindo cada linha por vírgulas.
Conceitos Avançados
Atrasos podem ser implementados com ping ou laços simples. Para chamar outros scripts, use CALL. Rótulos definidos com :nome permitem desvios estruturados.
@echo off
call :subrotina argumento
echo Continuação...
goto :fim
:subrotina
echo Executando subrotina com %1
goto :eof
:fim
Sub-rotinas melhoram a organização do código, permitindo modularidade.