Programação em batch

“Batch” vem do inglês e significa lote. Um arquivo “batch” é do tipo script, ou seja, um programa escrito para um sistema que automatiza a execução de tarefas que poderiam alternativamente ser executadas uma por vez por um operador humano. Linguagens de script são frequentemente interpretadas (ao invés de compiladas).

O Batch foi inicialmente criado para o MS-DOS, onde o COMMAND.COM era o interpretador dos comandos. O MS-DOS é um sistema operacional antigo da Microsoft, que funcionava de base para o funcionamento do Windows. A partir do Windows 95, o DOS passou a vir integrado ao sistema mais novo. A versão para Windows do Batch contém utilitários e estrutura de código mais avançada. É interpretado pelo Prompt de comando, chamado através do programa “cmd” no campo “executar” de algumas versões do Windows.

Command prompt

Para editar a janela do prompt de comando (aumentar seu tamanho, por exemplo), clique no canto superior esquerdo e em “Properties”. Clique na aba “Options” e, no rótulo “command history”, digite um valor alto (o máximo é 999) no “buffer size” e 5 no “number of Buffers”. Na aba “Layout”, no rótulo “screen buffer size”, aumente os valores de width para ficar mais largo na tela (mesmo maximizando a janela com os valores padrão, ela só cobre a metade esquerda da tela) e de height para receber mais texto (caso contrário, o histórico é apagado rapidamente com mais output).

Para copiar um texto, clique com o botão direto na tela e escolha “mark”. Em seguida, clique com o botão esquerdo e arraste sobre a área com o texto a ser copiado. Por fim, tecle ENTER para enviar o texto para a área de transferência. Para colar, basta clicar com o botão direito e em “paste”.

O prompt de comando apresenta o sinal “c:>” como ponto inicial para digitação, onde “c” é letra do drive (unidade e pasta), em que se está posicionado. Os comandos podem ser executados diretamente ou através de arquivos batch, cuja extensão geralmente é .bat (DOS and Windows) ou .cmd (Windows NT e OS/2). Veja esses exemplos de comando:

A primeira linha mostra os arquivos e pastas do mesmo nível do diretório (directory) onde está; a segunda, muda para o diretório (change directory) de nome “testes”; depois, muda para o diretório um nível acima (onde estávamos no início); por fim, é executado o script “monolito.bat”

Batch file

Um arquivo de programação em lote pode ser editado em um bloco de notas, salvo com extensão “.bat” e executados no prompt digitando seu nome – desde que esteja no diretório onde está o arquivo ou diga seu caminho completo. Veja esse exemplo:

O comando CLS limpa a tela (clear screen). Colocar um arroba “@” no início da linha faz com que o prompt fique oculto durante toda execução (ou seja, o comando não é impresso na tela). REM é usado para comentários. SET define uma variável, chamada entre porcentagens. ECHO imprime um texto na tela, podendo conter variáveis; já ECHO OFF desativa o aparecimento na tela informações e confirmações feitas pelo sistema, como “C:>”, “Tem certeza que deseja fazer tal?”, “PAUSE”, etc (ECHO ON faz voltar). PAUSE interrompe momentaneamente a execução e apresenta: “Pressione qualquer tecla para continuar”.

O comando GOTO direciona um programa em lote para saltar a uma linha rotulada. Traduzindo ao pé da letra, ele “vai para” a linha que possuir um rótulo, identificado por dois pontos “:” como primeiro caractere, e ignora todo o código até lá.

A sintaxe “GOTO:eof” finaliza a execução do script, já que vai para o fim do arquivo (end of file). No entanto, é preferível usar o comando “EXIT /b”, que conclui o script sem fechar o CMD.exe e também imprime uma saída de erro (errorlevel): 0 para sucesso, 1 ou mais para erro.

Vários outros comandos podem ser vistos nesse link. Já alguns programas um pouco mais avançados podem ser vistos no blog Programação em Linguagem Batch.