Você está na página 1de 7

20/10/2016

BAT

BATConceitosbsicosPurainfo

Conceitos bsicos

Diego Duarte

14 de junho de 2011

Artigos, bat (MS-DOS), Programao/ Scripts

14,201 Views

Batch

Batch ou arquivos de lote (tambm conhecidos por .bat ou ponto-bat) so arquivos de computador
utilizados pra automatizar tarefas, um modo de processamento de dados no qual os dados de entrada
so coletados em grupos, ou lotes, e periodicamente processados em seqncia por um ou mais jobs. O
processamento batch no permite a interao do usurio com o sistema durante a execuo dos jobs.

Comparado ao processamento online ou interativo, o processamento batch costuma se mostrar mais


eficiente nos casos de operaes rotineiras de alto volume, como o processamento da folha de pagamento
ou do faturamento.
Muitos jobs batch costumam ser rodados noite, nos mainframes. Antes que as redes se tornassem
economicamente viveis, quase todo o processamento de dados empresarial e cientfico era feito em batch.
Os jobs batch podem ser rodados por requisio especfica ou dentro de um cronograma regular de
produo, sendo essa ltima modalidade mais comum nas empresas. A freqncia em que os jobs
regulares so executados (diria, semanal, mensal e assim por diante) determinada pelas exigncias da
aplicao (contabilidade, por exemplo).
Alguns tcnicos de informtica utilizam deste recurso para facilitar a instalao dosistema 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.

@ECHO Iniciando o particionador


@ECHO Deixe a unidade C: como unidade do sistema.
PAUSE
FDISK
@ECHO OFF
ECHO Iniciando a formatao da unidade C:
FORMAT
C:
CD
C:ECHO Criando a pasta Win98
http://www.purainfo.com.br/artigos/batconceitosbsicos/

1/7

20/10/2016

BATConceitosbsicosPurainfo

MD Win98
CD Win98
ECHO Copiando a instalao do CD
COPY E:\win98 *.*
ECHO Iniciando a instalao
PAUSE
@ECHO ON
INSTALAR

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.
Editar texto de cabealho
Aqui esto alguns comandos utilizados em jobs batch.
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.
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

http://www.purainfo.com.br/artigos/batconceitosbsicos/

2/7

20/10/2016

BATConceitosbsicosPurainfo

devem comear com letra). Para chamar a varivel posteriormente basta coloc-la entre %.
Por exemplo:
SET nome=JooECHO 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.
@[Comando] Desactiva as informaes e confirmaes feitas pelo sistema apenas para esta linha.
IF [condio] ([aco]) ELSE ([aco2])
Este um comando condicional. Se condio faa aco, seno faa aco2.
Por exemplo:
@ECHO OFFSET nome=AnaIF %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 OFFFOR /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
http://www.purainfo.com.br/artigos/batconceitosbsicos/

3/7

20/10/2016

BATConceitosbsicosPurainfo

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 NoDEFINED uma palavra inglesa que significa
DefinidoEXIST 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 OFFSET nome1=AnaSET nome2=DanielleREM O resultado da condio abaixo ser positivoIF
%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.
http://www.purainfo.com.br/artigos/batconceitosbsicos/

4/7

20/10/2016

BATConceitosbsicosPurainfo

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 OFFSET ana=23SET danielle=19REM O resultado da condio abaixo ser negativoIF %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 OFFIF 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 OFFIF 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 OFFIF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo )
EXEMPLOS
Xiguala1?

@ECHO OFFCLSSET X=1IF %X% == 1 GOTO okECHO X no igual a 1, X igua a %X%GOTO saida:okECHO
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, 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.
http://www.purainfo.com.br/artigos/batconceitosbsicos/

5/7

20/10/2016

BATConceitosbsicosPurainfo

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.
Faaoteste

1. Abra o Bloco de notas do Windows;


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

@ECHO OFFSET idade=15IF %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.
bidom
1. Abra o Bloco de notas do Windows;
2. Copie o exemplo acima e cole nele
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 npor algum nmero);
6. Execute e veja o que acontece.
retirado de: Wikipdia, a enciclopdia livre.

Relacionado

http://www.purainfo.com.br/artigos/batconceitosbsicos/

6/7

20/10/2016
Reviso de Exchange #2
Em "Exchange"

BATConceitosbsicosPurainfo
Conhea o KiloCore, o primeiro processador
com 1 mil ncleos
Em "Artigos"

Entendendo as Roles do Exchange Server 2010


Em "Exchange"

http://www.purainfo.com.br/artigos/batconceitosbsicos/

7/7

Você também pode gostar