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
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]
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
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)
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
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.
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
Page 7 of 7
http://pt.wikipedia.org/wiki/Ficheiros_batch
11/12/2008