Você está na página 1de 7

Batch - Wikipdia, a enciclopdia livre

Page 1 of 7

Batch ou arquivos de lote (tambm conhecidos por .bat ou ponto-bat) so arquivos de computador
utilizados pra automatizar tarefas, regularmente confundido com o modo de processamento de
dados no qual os dados so processados em grupos, ou lotes, atravs de uma rotina agendada. O
batch neste caso, nada mais um conjunto de comandos que so rodados sequencialmente. Podemos
compar-lo grosseiramente aos scripts do Unix. Criado para o MSDOS, o batch foi utilizado para o
sistema operacional carregar programas para preparar o ambiente para rodar outros programas. Por
exemplo, o EMM386 que habilitava o uso da memria expandida (alm dos 640K).
Alguns tcnicos de informtica utilizam deste recurso para facilitar a instalao do sistema
operacional da Microsoft (Windows por exemplo) utilizando disquetes de boot.
Um exemplo de um job batch. Nota: executar os scripts deste artigo no seu sistema Windows pode danific-lo ou
causar perda de dados.

shutdown -s

e shutdown -a sao formas de desligamento forados sendo -a o anulador do shutdown -s

Este tipo de arquivo pode ser muito perigoso, pois eles so capazes de destruir o sistema operacional
sem o usurio saber deletando a pasta principal, enchendo o HD, desconfigurando a inicializao do
sistema, entre outros. Por isso recomendado que apenas execute jobs batch conhecidos. No
windows, estes arquivos podem ser facilmente editados clicando com o boto direito do mouse nele
e clicando em Editar. Voc pode fazer um utilizando o bloco de notas do windows onde cada linha
um comando diferente de MS-DOS e ao final, salve-o sempre com o final do nome .bat
(por_exemplo.bat).
Como estes arquivos no so capazes de interagir com o usurio, no possvel fazer jogos e
programas em geral apenas com batch, uma alternativa para isso a utilizao da linguagem de
programao Basic, que bem parecida com jobs batch.

ndice




1 Comandos
2 chicom
3 Condies
 3.1 Caracteres
 3.2 Numricas
 3.3 Variveis
 3.4 Arquivos
4 Exemplos
 4.1 X igual a 1?
 4.1.1 Faa o teste
 4.2 Mensagem de acordo com a idade
 4.2.1 Faa o teste
5 Ver tambm

Comandos
Aqui esto alguns comandos utilizados em jobs batch.

http://pt.wikipedia.org/wiki/Ficheiros_batch

11/12/2008

Batch - Wikipdia, a enciclopdia livre

Page 2 of 7

ECHO [mensagem ou varivel]

Escreve na tela
ECHO OFF

Desactiva as informaes e confirmaes feitas pelo sistema. Como "C:>", "Tem certeza que deseja
fazer tal?"....
ECHO ON

Activa as informaes e confirmaes do sistema.


ECHO.

Pula uma linha


SET variavel=valor

Cria ou modifica uma varivel (espao reservado temporariamente na memria RAM para guardar
algumas informaes nmericas, de caracteres, positivo/negativo entre outros. No podem ter acento
e devem comear com letra). Para chamar a varivel posteriormente basta coloc-la entre "%".
Por exemplo:
SET nome=Joo
ECHO O nome dele %nome%

:nomedolink

Nomeia um ponto do arquivo de lote permitindo avanar ou voltar execuo a partir daquele ponto
CLS

Esse comando limpa todo o ecr. CLear Screen.

chicom
@[Comando]

Desactiva as informaes e confirmaes feitas pelo sistema apenas para esta linha.

http://pt.wikipedia.org/wiki/Ficheiros_batch

11/12/2008

Batch - Wikipdia, a enciclopdia livre

Page 3 of 7

IF [condio] (
[aco]
) ELSE (
[aco2]
)

Este um comando condicional. "Se condio faa aco, seno faa aco2".
Por exemplo:
@ECHO OFF
SET nome=Ana
IF "%nome%"=="Ana" (
ECHO Oi Aninha!
) ELSE (
ECHO Oi %nome%!
)

GOTO [ponto]

Avana ou volta a execuo para um ponto do arquivo de lote.


FOR /L %%variavel IN (inicio,incremento,fim) DO comando [parmetro]

Repete um comando vrias vezes fazendo incrementaes at o fim ser atingido.


/L, uma opo do comando FOR que faz as incrementaes.
%%variavel, o nome da varivel que vai ser incrementada.
inicio, o valor de incio da varivel que ser incrementada.
incremento, nmero que ser somado a cada incrementao.
fim, a repetio ir acabar quando o valor da varivel atingir este valor.
comando, um comando que ser repetido.
[parmetro], o parmetro 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 [comentrio]

Este comando no faz absolutamente nada. Ele utilizado para inserir comentrios nos arquivos.


Todos aqui listados so 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-

http://pt.wikipedia.org/wiki/Ficheiros_batch

11/12/2008

Batch - Wikipdia, a enciclopdia livre

Page 4 of 7

DOS (ou no prompt de comando do Windows) [comando]/? Todos comandos de MS-DOS


tambm entram nesta lista incluindo chamadas de outros programas para este sistema.

Condies


Numricas e Caracteres:
 Igual (EQU ou ==)
 Diferente (NEQ)
 Menor que (LSS)
 Menor ou igual a (LEQ)
 Maior que (GTR)
 Maior ou igual a (GEQ)
 Condio negativa (NOT)
Variveis:
 Definido (DEFINED [varivel sem %])
 Condio negativa (NOT)
Em arquivos:
 Existe (EXIST)
 Condio negativa (NOT)

Os smbolos acima vm das seguntes fontes:


EQU vem da palavra inglesa EQUals (Igual).
NEQ vem da palavra inglesa Not EQuals (No-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 No
DEFINED uma palavra inglesa que significa Definido
EXIST uma palavra inglesa que significa Existe

Caracteres
As condies numricas e de caracteres so iguais, porm avaliam de maneira diferente. Por
exemplo, se compararmos "Ana" com Danielle na condio LEQ (Menor ou igual), ser avaliado o
tamanho . "Ana" tem 3 bytes e "Danielle" tem 8. Ento "Danielle" maior que "Ana" e a condio
positiva.
Veja como ficaria:
@ECHO OFF
SET nome1=Ana
SET nome2=Danielle
REM O resultado da condio abaixo ser positivo
IF "%nome1%" LEQ "%nome2%" ( ECHO Positivo ) ELSE ( ECHO Negativo )

Numricas
Nas condies numricas no h mistrio, as duas nicas diferenas entre as condies numricas e
de caracteres que nas numricas so avaliados os nmeros, no o tamanho, e que voc no 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:

http://pt.wikipedia.org/wiki/Ficheiros_batch

11/12/2008

Batch - Wikipdia, a enciclopdia livre

Page 5 of 7

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

Variveis
A condio DEFINED verifica se uma varivel j foi definida. Por exemplo, se a varivel "x" estiver
definida, ento o resultado ser positivo, seno negativo.
Veja como ficaria:
@ECHO OFF
IF DEFINED x ( ECHO Positivo ) ELSE ( ECHO Negativo )

Arquivos
A condio EXIST verifica se existe algum arquivo. Por exemplo, se existir o arquivo "exemplo.bat"
o resultado ser positivo, seno negativo.
Veja como ficaria:
@ECHO OFF
IF EXIST exemplo.bat ( ECHO Positivo ) ELSE ( ECHO Negativo )

Esta condio no 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 no
sabe. Por exemplo, se existir algum arquivo com a extenso ".bat" na pasta atual o resultado ser
positivo, seno negativo.
Veja como ficaria:
@ECHO OFF
IF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo )

Exemplos
X igual a 1?
@ECHO OFF
CLS
SET X=1
IF "%X%" == "1" GOTO ok
ECHO X no igual a 1, X igual a %X%
GOTO saida
:ok
ECHO X igual a 1
:saida

Na primeira linha. O "@" indica que no para aparecer o comando que segue, no caso,
"ECHO" (Comando que escreve na janela). Nesta linha, eu estou grosseiramente mandando o MSDOS calar a boca (no falar nada sem eu mandar), pois se ECHO faz o computador "falar", ECHO
OFF faz o computador "desligar a boca" e com o @ no comeo da linha, ele nem vai informar o

http://pt.wikipedia.org/wiki/Ficheiros_batch

11/12/2008

Batch - Wikipdia, a enciclopdia livre

Page 6 of 7

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 varivel X=1.
Na quarta linha, uma linha condicional. Se "X" for igual 1 v para "ok".
Na quinta linha, bivio que X no vai ser igual a 1, ento o MS-DOS vai "falar" X no igual a 1,
X igua a [valor de x].
Na sexta linha, ele ir para o ponto "saida" porque o resto feito se X for igual a 1.
Na stima linha, est sendo definido o ponto "ok", aquele ponto citado na quarta linha.
Na oitava linha, X ser igua a 1, ento 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, ento o MS-DOS entende que o job batch concluiu.
Faa o teste
1.
2.
3.
4.
5.
6.

Abra o Bloco de notas do Windows;


Copie o exemplo acima e cole nele;
Salva-o como exemplo.bat;
D dois-clicks nele observe o que acontecer;
Agora experimente modificar a terceira linha por SET X=qualquer coisa;
Execute e veja o que acontece.

Mensagem de acordo com a idade


@ECHO OFF
SET idade=15
IF %idade% LSS 10 (
ECHO Bom dia menino!
ECHO.
ECHO Voc no vai pra escola?
) ELSE (
IF %idade% LSS 18 (
ECHO Bom dia garoto!
ECHO.
ECHO Voc no vai pro colgio?
) ELSE (
IF %idade% LEQ 64 (
ECHO Bom dia!
ECHO.
ECHO Voc no vai trabalhar hoje?
) ELSE (
ECHO Bom dia!
ECHO.
ECHO Tudo bem?
)
)
)

Esta uma forma mais avanada de usar o comando condicional IF. Isso quase idntico a
Algoritmo. Ele avalia a varivel %idade%. Se %idade% for menor que 10 ento escreva tal; Seno,
se %idade% for menor que 18 ento escreva tal; Seno se %idade% for menor ou igual a 64 ento
escreva tal; Seno obviamente %idade% maior que 64, ento imprima tal.
Faa o teste
1.
2.
3.
4.
5.

Abra o Bloco de notas do Windows;


Copie o exemplo acima e cole nele
Salva-o como exemplo2.bat;
D dois-clicks nele observe o que acontecer;
Agora experimente modificar a segunda linha por SET idade=n (troque n por algum nmero);

http://pt.wikipedia.org/wiki/Ficheiros_batch

11/12/2008

Batch - Wikipdia, a enciclopdia livre

Page 7 of 7

6. Execute e veja o que acontece.

http://pt.wikipedia.org/wiki/Ficheiros_batch

11/12/2008

Você também pode gostar