Batch

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Esta página ou secção não cita nenhuma fonte ou referência, o que compromete sua credibilidade (desde dezembro de 2010).
Por favor, melhore este artigo providenciando fontes fiáveis e independentes, inserindo-as no corpo do texto por meio de notas de rodapé. Encontre fontes: Googlenotícias, livros, acadêmicoScirusBing. Veja como referenciar e citar as fontes.

Batch ou arquivo de lote (também conhecidos por .bat) é um arquivo de computador utilizado para automatizar tarefas. É regularmente confundido com o modo de processamento de dados no qual os mesmos são processados em grupos, ou lotes, através de uma rotina agendada. O batch neste caso, nada mais é um conjunto de comandos rodados sequencialmente. Podemos compará-lo, grosso modo, aos scripts do Unix.

Criado para o MS-DOS, o batch foi utilizado para preparar o sistema operacional à execução de outros programas. Por exemplo: o EMM386 que habilitava o uso da memória expandida (além dos 640K). Alguns técnicos de informática utilizam deste recurso para facilitar a instalação do sistema operacional da Microsoft (Windows) utilizando um disco de boot.

Este tipo de arquivo pode ser muito perigoso, pois é capaz de danificar o sistema operacional sem o conhecimento do usuário, enchendo o disco rígido, desconfigurando a inicialização do sistema, dentre outros males. Por isso, é recomendado executar jobs batch conhecidos. No Windows, estes arquivos podem ser facilmente editados clicando com o botão direito do mouse e selecionando Editar. Você pode fazer um utilizando apenas o bloco de notas do windows. No arquivo, cada linha é um comando diferente do MS-DOS. Para funcionar é necessário salvar o arquivo com a extensão .bat (Por exemplo: nome do arquivo.bat).

Índice

Comandos [editar]

Aqui estão, alguns comandos utilizados em jobs batch. Se você tiver dúvida de algum digite no Prompt de comando: comando/?. Outro modo de vê-los é digitando help no Prompt de Comando.

ECHO [mensagem ou variável]

Escreve na tela

ECHO OFF

Desactiva as informações e confirmações feitas pelo sistema. Como "C:>", "Tem a certeza que deseja fazer tal?"...

ECHO ON

Activa as informações e confirmações do sistema.

ECHO.

Salta uma linha

SET variavel=valor

Cria ou modifica uma variável (espaço reservado temporariamente na memória RAM para guardar algumas informações númericas, de caracteres, positivo/negativo entre outros. Não podem ter acento e devem começar com letra). Para chamar a variável posteriormente basta colocá-la entre "%". Por exemplo:

SET nome=João
ECHO O nome dele é %nome%
:nomedolink

Nomeia um ponto do arquivo de lote permitindo avançar ou voltar à execução a partir daquele ponto.

CLS

Este comando limpa todo o ecrã. CLear Screen.

@[Comando]

Desactiva as informações e confirmações feitas pelo sistema apenas para esta linha.

IF [condição] (
    [acção]
) ELSE (
   [acção2]
)

Este é um comando condicional. "Se condição fazer acção, senão fazer acção2".

Por exemplo
@ECHO OFF 
SET nome=Ana
IF "%nome%"=="Ana" (
   ECHO Oi Aninha!
) ELSE (
   ECHO Oi %nome%!
)
GOTO [ponto]

Avança ou volta a execução para um ponto do arquivo de lote.

FOR /L %%variavel IN (início,incremento,fim) DO comando [parâmetro]

Repete um comando várias vezes fazendo incrementações até o fim ser atingido.

  • /L, é uma opção do comando FOR que faz as iteracções
  • %%variavel, é o nome da variável que vai ser incrementada
  • início, é o valor de início da variável que será incrementada
  • incremento, número que será somado a cada iteracção
  • fim, a repetição irá acabar quando o valor da variável atingir este valor
  • comando, um comando que será repetido
  • [parâmetro], o parâmetro do comando que será repetido
Por exemplo
@ECHO OFF
FOR /L %%a IN (1,1,5) DO ECHO O valor de A é %%a
PAUSE

Faz uma pausa e só volta quando o utilizador premir alguma tecla do teclado.

REM [comentário]

Este comando não faz absolutamente nada. Ele é utilizado para inserir comentários nos arquivos.

  • Todos aqui listados são comandos de MS-DOS que foram criados especificamente para arquivos de lote. Se você precisar de mais detalhes sobre cada um deles basta digitar no MS-DOS (ou no prompt de comando do Windows) help Todos comandos de MS-DOS também entram nesta lista incluindo chamadas de outros programas para este sistema.

Condições [editar]

  • Numéricas e Caracteres:
    • Igual (EQU ou ==)
    • Diferente (NEQ)
    • Menor que (LSS)
    • Menor ou igual a (LEQ)
    • Maior que (GTR)
    • Maior ou igual a (GEQ)
    • Condição negativa (NOT)
  • Variáveis:
    • Definido (DEFINED [variável sem %])
    • Condição negativa (NOT)
  • Em arquivos:
    • Existe (EXIST)
    • Condição negativa (NOT)

Os símbolos acima vêm das seguntes fontes:

EQU vem da palavra inglesa EQUals (Igual).
NEQ vem da palavra inglesa Not EQuals (Não-Igual, diferente)
LSS vem da palavra inglesa LeSS (Menor)
LEQ vem da palavra inglesa Less or EQuals (Menor ou Igual)
GTR vem da palavra inglesa GreaTeR (Maior)
GEQ vem da palavra inglesa Greater or EQuals (Maior ou Igual)
NOT é uma palavra inglesa que significa Não
DEFINED é uma palavra inglesa que significa Definido
EXIST é uma palavra inglesa que significa Existe

Caracteres [editar]

As condições numéricas e de caracteres são iguais, porém avaliam de maneira diferente. Por exemplo, se compararmos "Ana" com Danielle na condição LEQ (Menor ou igual), será avaliado o tamanho. "Ana" tem 3 letras e "Danielle" tem 8. Então "Danielle" é maior que "Ana" e a condição é positiva. Veja como ficaria:

@ECHO OFF
SET nome1=Ana
SET nome2=Danielle
REM O resultado da condição abaixo será positivo
IF "%nome1%" LEQ "%nome2%" ( ECHO Positivo ) ELSE ( ECHO Negativo )

Numéricas [editar]

Nas condições numéricas não há mistério, as duas únicas diferenças entre as condições numéricas e de caracteres é que nas numéricas são avaliados os números, não o tamanho, e que você não usa aspas. Vamos supor que a Ana tem 23 anos e que a Danielle tem 19. Se compararmos as suas idades respectivamente usando LSS (Menor que) o resultado será negativo. Veja como ficaria:

@ECHO OFF
SET ana=23
SET danielle=19
REM O resultado da condição abaixo será negativo
IF %ana% LSS %danielle% ( ECHO Positivo ) ELSE ( ECHO Negativo )
ELSE ( ECHO Negativo )

Arquivos [editar]

A condição EXIST verifica se existe algum arquivo. Por exemplo, se existir o arquivo "exemplo.bat" o resultado será positivo, senão negativo. Veja como ficaria:

@ECHO OFF
IF EXIST exemplo.bat ( ECHO Positivo ) ELSE ( ECHO Negativo )

Esta condição não para por aí. No sistema MS-DOS, você pode fazer uma "pesquisa" na pasta em que está por um arquivo digitando parte dele. Você usa "*" para indicar a(s) parte(s) que você não sabe. Por exemplo, se existir algum arquivo com a extensão ".bat" na pasta atual o resultado será positivo, senão negativo. Veja como ficaria:

@ECHO OFF
IF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo )

Exemplos [editar]

Shutdown [editar]

Existe também o comando Shutdown que é usado para desligar ou reiniciar o computador. Exemplo: Shutdown -s -t 2, que nesse caso serve pra desligar o computador 2 segundos após o comando ter sido executado. O Shutdown pode ser usado criando um arquivo no formato .bat, através do "Executar" ou do Prompt de comando.

Parametros
  • -s: desliga o computador (shutdown)
  • -h: hiberna o computador (hibernate)
  • -r: reinicia o computador (reboot)
  • -a: aborta o processo de desligamento/reiniciamento do computador (abort)
  • -t: Tempo em que o computador será desligado após o comando ter sido executado. Esse parametro é adicional, e se não for colocado, o comando será executado na hora. O tempo deve ser colocado em segundos, então, se quiser que computador desligue em 1 minuto, será necessário colocar shutdown -s -t 60. (time)
  • -f: Força o início do comando. Este parametro também é adicional. (force)
  • -c: Escreve uma mensagem na tela que aparece. Exemplo: Shutdown -r -t -c "Mensagem aqui.". Assim como os outro dois, este parametro também é adicional

X é igual a 1? [editar]

@ECHO off
CLS
SET X=1
IF "%X%" == "1" GOTO ok
ECHO X não é igual a 1, X é igual a %X%
GOTO saida
:ok
ECHO X é igual a 1
:saida
  • Na primeira linha. O "@" indica que não é para aparecer o comando que segue, no caso, "ECHO" (Comando que escreve na janela). Nesta linha, eu estou grosseiramente mandando o MS-DOS calar a boca (não falar nada sem eu mandar), pois se ECHO faz o computador "falar", ECHO OFF faz o computador "desligar 'a ação de falar' " e com o @ no começo da linha, ele nem vai informar o utilizador que está parando de falar;
  • Na segunda linha, o comando CLS faz o MS-DOS apagar todo o ecrã;
  • Na terceira linha, como já foi explicado, faz a variável X=1;
  • Na quarta linha, é uma linha condicional. Se "X" for igual à 1 vá para "ok";
  • Na quinta linha, é óbvio que X não vai ser igual a 1, então o MS-DOS vai "falar" X não é igual a 1, X é igual a [valor de x];
  • Na sexta linha, ele irá para o ponto "saida" porque o resto é feito se X for igual a 1;
  • Na sétima linha, está sendo definido o ponto "ok", aquele ponto citado na quarta linha;
  • Na oitava linha, X será igua a 1, então o MS-DOS vai dizer X é igual a 1;
  • E na nona linha, é definido o ponto-final do processamento. Que é chamado na sexta linha, nada mais que isso, então o MS-DOS entende que o job batch concluiu.

Mensagem de acordo com a idade [editar]

@ echo off
title Mensagem de acordo com a sua idade By: Hacker DS
color a
:main
cls
echo Digite a sua idade:
echo As idades que podem ser digitadas sao 06,15,18,64.
set /p age=
if %age%==06 goto 06
if %age%==15 goto 15
if %age%==18 goto 18
if %age%==64 goto 64

:06
cls
echo Bom dia!
pause > nul
goto main
:15
cls
echo Voce nao vai pro colegio,ver os amigos?
pause > nul
goto main
:18
cls
echo Voce nao vai trabalhar hoje?
pause > nul
goto main
:64
cls
echo Bom dia,tudo bem?
pause > nul
goto main

Esta é uma forma mais avançada de usar o comando condicional IF. Isso é quase idêntico a Algoritmo. Ele avalia a variável %age%. Se %age% for menor que 10 então escreva tal; Senão, se %age% for menor que 18 então escreva tal; Senão se %age% for menor ou igual a 64 então escreva tal; Senão obviamente %age% é maior que 64, então imprima tal.

Faça o teste [editar]

  1. Abra o Bloco de notas do Windows;
  2. Copie um dos exemplos acima.
  3. Salva-o como exemplo2.bat;
  4. Dê dois-clicks nele observe o que acontecerá;
  5. Agora experimente modificar a segunda linha por SET idade=n (troque n por algum número);
  6. Execute e veja o que acontece.

Comandos de abrir programas [editar]

Válido para windows XP, este comando serve para abrir programas pré-definidos. Consiste no comando /cd seguindo com outros diretórios. Olhe o exemplo:

@echo off
cd/
cd windows
cd system32
start mshearts.exe

Se seu computador estiver com o aplicativo "Copas" dos jogos do windows, esse assistente abrirá o jogo Copas. O arquivo entra em C:\windows\system32\mshearts.exe

Para abrir um site, apenas digite:

@echo off
start (endereço do site)

Lembrando que para funcionar a url precisa ter o começo http:// ou www.

Indo além no assistente de abrir programas [editar]

Há como fazer assistentes que abrirão programas de acordo com sua escolha. Olhe o exemplo:

@echo off
echo Assistente de abrir programas
echo Digite o numero correspondente ao programa.
echo Escolha o programa a abrir:
echo.
echo 1- Copas
echo 2- Paint
set/p "escolha=>"
if %escolha%==1 goto opcao1
if %escolha%==2 goto opcao2
:opcao1
cd/
cd windows
cd system32
start mshearts.exe
goto End
:opcao2
cd/
cd windows
cd system32
start mspaint.exe
goto End
:End

Ver também [editar]