Escolar Documentos
Profissional Documentos
Cultura Documentos
Comandos BAT
Comandos BAT
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
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
Page 2 of 7
Escreve na tela
ECHO OFF
Desactiva as informaes e confirmaes feitas pelo sistema. Como "C:>", "Tem certeza que deseja
fazer tal?"....
ECHO ON
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
chicom
@[Comando]
Desactiva as informaes e confirmaes feitas pelo sistema apenas para esta linha.
http://pt.wikipedia.org/wiki/Ficheiros_batch
11/12/2008
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]
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
Page 4 of 7
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)
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
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
Page 6 of 7
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.
http://pt.wikipedia.org/wiki/Ficheiros_batch
11/12/2008
Page 7 of 7
http://pt.wikipedia.org/wiki/Ficheiros_batch
11/12/2008