Você está na página 1de 6

Batch Wikipdia, a enciclopdia livre

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

Batch
Origem: Wikipdia, a enciclopdia livre.

Batch ou arquivo de lote (tambm conhecidos por .bat) um arquivo de computador utilizado para automatizar tarefas. regularmente confundido com o modo de processamento de dados no qual os mesmos so processados em grupos, ou lotes, atravs de uma rotina agendada. O batch neste caso, nada mais um conjunto de comandos rodados sequencialmente. Podemos compar-lo, a grosso modo, aos scripts do Unix. Criado para o MS-DOS, o batch foi utilizado para preparar o sistema operacional execuo de 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) utilizando um disco de boot. Este tipo de arquivo pode ser muito perigoso, pois capaz de danificar o sistema operacional sem o conhecimento do usurio, enchendo o disco rgido, desconfigurando a inicializao do sistema, dentre outros males. Por isso, recomendado executar jobs batch conhecidos. No Windows, estes arquivos podem ser facilmente editados clicando com o boto 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 necessrio salvar o arquivo com a extenso .bat (Por exemplo: nome do arquivo.bat).

ndice
1 Comandos 2 Condies 2.1 Caracteres 2.2 Numricas 2.3 Arquivos 3 Exemplos 3.1 Shutdown 3.2 X igual a 1? 3.3 Mensagem de acordo com a idade 3.3.1 Faa o teste 4 Ver tambm

Comandos
Aqui esto, alguns comandos utilizados em jobs batch. Se voc tiver dvida de algum digite no Prompt de comando: comando/?. Outro modo de v-los digitando help no Prompt de Comando.
ECHO [mensagem ou varivel]

Escreve na tela ECHO OFF Desactiva as informaes e confirmaes feitas pelo sistema. Como "C:>", "Tem a certeza que deseja fazer
1 de 6 02/11/2011 01:11

Batch Wikipdia, a enciclopdia livre

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

Desactiva as informaes e confirmaes feitas pelo sistema. Como "C:>", "Tem a certeza que deseja fazer tal?"... ECHO ON Activa as informaes e confirmaes do sistema. ECHO. Salta 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 Este comando limpa todo o ecr. CLear Screen. @[Comando] Desactiva as informaes e confirmaes feitas pelo sistema apenas para esta linha.
IF [condio] ( [aco] ) ELSE ( [aco2] )

Este um comando condicional. "Se condio fazer aco, seno fazer 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.


2 de 6 02/11/2011 01:11

Batch Wikipdia, a enciclopdia livre

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

FOR /L %%variavel IN (incio,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 iteraces %%variavel, o nome da varivel que vai ser incrementada incio, o valor de incio da varivel que ser incrementada incremento, nmero que ser somado a cada iteraco 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-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:

3 de 6

02/11/2011 01:11

Batch Wikipdia, a enciclopdia livre

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

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 letras 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:
@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 )

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 )

4 de 6

02/11/2011 01:11

Batch Wikipdia, a enciclopdia livre

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

Exemplos
Shutdown
Existe tambm 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 aps o comando ter sido executado. O Shutdown pode ser usado criando um arquivo no formato .bat, atravs do "Executar" ou do Prompt de comando. Parametros desliga o computador (shutdown) hiberna o computador (hibernate) reinicia o computador (reboot) aborta o processo de desligamento/reiniciamento do computador (abort) Tempo em que o computador ser desligado aps o comando ter sido executado. Esse parametro adicional, e se no for colocado, o comando ser executado na hora. O tempo deve ser colocado em segundos, ento, se quiser que computador desligue em 1 minuto, ser necessrio colocar shutdown -s -t 60. (time) -f: Fora o nicio do comando. Este parametro tambm adicional. (force) -c: Escreve uma mensagem na tela que aparece. Exemplo: Shutdown -r -t -c "Mensagem aqui.". Assim como os outro dois, este parametro tambm adicional
-s: -h: -r: -a: -t:

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 MS-DOS 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 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, bvio 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

Mensagem de acordo com a idade


5 de 6 02/11/2011 01:11

Batch Wikipdia, a enciclopdia livre

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

Mensagem de acordo com a idade


@ECHO OFF SET idade=n IF %idade% LSS 10 ( ECHO Bom dia menino! ECHO. ECHO Voc no vai para 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. 6. Abra o Bloco de notas do Windows; Copie um dos exemplos acima. 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); Execute e veja o que acontece.

6 de 6

02/11/2011 01:11

Você também pode gostar