Professional Documents
Culture Documents
Para montarmos um arquivo.bat devemos ter um amplo conhecimento das funes do Prompt
de Comando, tambm chamado de MS-DOS e de CMD.
Neste tutorial alguns comandos sero abordados mas para maiores informaes de comandos
do CMD deixo este link:
http://www.babooforum.com.br/forum/index.p...howtopic=137759
J adiantando...
Para qualquer comando no CMD, para saber suas funes, basta digitar o nome do
comando mais /? e teclar 'enter'
Para vermos uma lista de comandos digitamos help
P.S.: Os exemplos executam e saem direto. Para ver o que eles fazem
acrescentem o comando pause para ele esperar que voc aperte uma tecla,
porm assim aparecer pressione qualquer tecla para continuar. . . para no
aparecer nenhuma mensagem utilize o comando pause >nul .
Introduo
Antes de tudo, indicar o porqu os processos so chamados batch. A razo por ele se chamar
bat porque no ms-dos requere-se como mximo trs letras na extenso e por tanto os
arquivos tem a extenso .bat
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).
Exemplos:
comando *.doc -> selecionar todos os arquivos que tenham a extenso doc.
comando a*.doc -> selecionar todos os arquivos que comecem por a e tenha a extenso doc.
comando a*b.doc -> selecionar todos os arquivos que comecem por a, acabem por b e tenham
a extenso doc.
comando *mao*.doc -> selecionar todos os arquivos que contenham 'mao' e tenham a
extenso doc.
comando c?mao.doc -> selecionar todos os arquivos que contenham 'c', logo um carater
qualquer e logo 'mao'. Deve ter tambem a extenso doc.
comando c?b*.* -> selecionar todos os arquivos que comecem por 'c', tenham um caracter
qualquer, logo um b e qualquer extenso.
comando *.b?t -> selecionar todos os arquivos que tenham a extenso que comece por b, logo
um caracter qualquer e logo um t.
Escreve na tela
ECHO OFF
Desativa as informaes e confirmaes feitas pelo sistema. Como "C:>", "Tem certeza que
deseja fazer tal?"....
ECHO ON
ECHO.
Cria ou modifica uma varivel (espao reservado temporariamente na memria RAM para
guardar algumas informaes numricas, 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:
CODE
SET nome=Tex
ECHO O nome dele %nome%
Condies
Numricas e Caracteres:
o Igual (EQU ou ==)
o Diferente (NEQ)
o Menor que (LSS)
o Menor ou igual a (LEQ)
o Maior que (GTR)
o Maior ou igual a (GEQ)
o Condio negativa (NOT)
Variveis:
o Definido (DEFINED [varivel sem %])
o Condio negativa (NOT)
Em arquivos:
o Existe (EXIST)
o 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:
CODE
@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
CODE
@ECHO OFF
SET ana=23
SET danielle=19
RO EM 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:
CODE
@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:
CODE
@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:
CODE
@ECHO OFF
IF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo )
:nomedolink
Nomeia um ponto do arquivo de lote permitindo avanar ou voltar a execuo a partir daquele
ponto.
CLS
Esse comando limpa toda a tela. CLear Screen.
@[Comando]
Desativa as informaes e confirmaes feitas pelo sistema apenas para esta linha.
IF [condio] (
[ao]
) ELSE (
[ao2]
)
Esse um comando condicional. "Se condio faa ao, seno faa ao2".
Por exemplo:
CODE
@ECHO OFF
SET nome=Tex
IF "%nome%"=="Tex" (
ECHO Ola Tex!
) ELSE (
ECHO Ola %nome%!
)
GOTO [ponto]
Avana ou volta a execuo para um ponto do arquivo de lote.
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 usurio apertar alguma tecla do teclado.
REM [comentrio]
Este comando no faz absolutamente nada. Ele utilizado para inserir comentrios nos
arquivos.
PROMPT
Serve para abrir o prompt do MS-dos. O mais habitual $p$g que corresponde a;
Por isso se colocarmos prompt $p$g o cursor mostra a trajetria de onde estamos e logo o
separador. possvel o texto ( por exemplo prompt Meu_nome $p$g ).
DATE
Ver/por a data do sistema
TIME
Ver/por a hora do sistema
VER[/font]
Verso do sistema
[font=Verdana]VOL unidade
Volume da unidade especificada
MEM parmetros
Mostra a memria usada e livre no sistema
/p -> mostra por programas
/d -> por programas controladores
/c -> classifica por tamanho
O destino deve ser uma trajetria completa de onde desejar o/os arquivo(s)
copy meuarquivo.txt c:\ (copi-lo do diretrio raiz de C)
copy meuarquivo.txt c:\meuarq.txt (copi-lo e poder mudar o nome a meuarq.txt)
copy *.txt a:\ (copiar todos os arquivos que tenham a extenso txt a unidade A)
copy *.txt c:\meusdo~1 (copiar todos os que tenham a extenso txt ao diretrio Meus
documentos ( cujo o nome curto meusdoc~1).
DELTREE arquivo(s) -y
Apaga a raiz especificada ( se um arquivo coloca o arquivo, se uma pasta coloca a pasta
com todas as subpastas que incluam).
Com o parmetro -y no pergunta cada vez
Este comando na realidade no um comando sim uma utilidade includa no ms-dos.
DIR trajeto
Mostra uma lista do contedo do diretrio especificado no trajeto. Se no especificado nada, se
entende o atual.
Se coloca como parmetro /W mostra uma lista resumida
Se coloca como parmetro /P mostra uma lista utilizando o filtro more.
Dir/s c:\lista.txt
ATTRIB arquivo(s)
Mostra os arquivos dos diretrios indicados e nesse caso permite mud-los.
os atributos so:
H -> oculto. Se ativa com +h e desativa com -h
R -> Leitura. Apenas leitura com +r, normal com -r
S -> Sistema. Se ativa com +s e desativa com -s
A -> Modificado. Para copias de segurana incrementado. +a indica modificado e -a indica no
modificado.
Attrib arquivotex.txt (mostrar os atributos do arquivotex.txt)
attrib *.exe +r +r +s (coloca todos os arquivos com extenso exe como ocultos, do sistema e a
apenas l).
TYPE arquivo
Mostra por pasta o contedo do arquivo;
type nomedoarquivo.txt
EDIT arquivo
Editor de textos utilizado para editar scripts e arquivos de texto.
Este exemplo mostra a lateral "eleja uma opo e da a eleger s (sim), n (no) o C (continuar)
por exemplo as tres seguintes linhas especificam aonde deve sair o fluxo do programa seguido
da tecla pulsada.
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:
CODE
@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:
CODE
@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:
CODE
@ECHO OFF
IF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo )
EXEMPLO: x igual a 6?
CODE
@ECHO OFF
CLS
SET X=6
IF "%X%" == "6" GOTO ok
ECHO X no igual a 6, X igua a %X%
GOTO saida
:ok
ECHO X igual a 6
: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 ao usurio que est parando de falar.
Na segunda linha, o comando CLS faz o MS-DOS apagar toda a tela.
Na terceira linha, como j foi explicado, faz a varivel X=6.
Na quarta linha, uma linha condicional. Se "X" for igual 6 v para "ok".
Na quinta linha, bivio que X no vai ser igual a 6, ento o MS-DOS vai "falar" X no igual
a 6, X igua a [valor de x].
Na sexta linha, ele ir para o ponto "saida" porque o resto feito se X for igual a 6.
Na stima linha, est sendo definido o ponto "ok", aquele ponto citado na quarta linha.
Na oitava linha, X ser igua a 6, ento o MS-DOS vai dizer X igual a 6.
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 batch concluiu.
Faa o teste
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.
CODE
@ECHO OFF
SET idade=19
IF %idade% LSS 10 (
ECHO Bom dia rapaz!
ECHO.
ECHO Voc no vai pra faculdade?
) ELSE (
IF %idade% LSS 18 (
ECHO Bom dia rapaz!
ECHO.
ECHO Voc no vai pra faculdade?
) 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. 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 n por algum nmero);
6. Execute e veja o que acontece.
Programando;
Existe uma infinidade de comandos, como mostrei acima, e s usar a imaginao e podemos
programar uma imensido de finalidades, basta usar a criatividade e alguns comandos, para
fechar esse tutorial, vou abordar alguns cdigos feito pelo autor..
Exemplo Intermedirio/Avanado
CODE
@echo off
cls
Echo .
Echo Comear o programa?
pause
Echo .
Echo .
Echo .
Echo Este programa cria uma chave de inicializaao de um arquivo no
:op2 exit
:proximo
Echo .
Echo .
Echo Chave criada com sucesso.
Echo .
Echo .
Echo Agora mostrarei a chamada de um outro arquivo bat sem a
interrupo do arquivo.
:op4 exit
Exemplo 2
CODE
@echo off
goto lista
:lista
cls
echo desligar em 100 segundos -
echo sair -
4
echo.
echo.
if /i "%opcao%"=="1" goto 1
if /i "%opcao%"=="2" goto 2
if /i "%opcao%"=="3" goto 3
if /i "%opcao%"=="4" goto 4
goto erro
:1
shutdown -s -t 100
goto lista
:2
shutdown -r -t 100
goto lista
:3
shutdown -a
goto lista
:4
exit
:erro
echo.
echo.
echo opcao invalida
echo.
echo.
goto lista
Exercicio
arquivo teste1.bat
Limpa a tela
Copia o arquivo do driver D: para o HD
Formata a unidade a:
Arquivo: Teste2.bat
Limpa a tela
verifica a versao do sistema operacional
Copiar o mesmo arquivo de hd para o pendrive
limpar a tela
verificar a data do sistema
verificar hora do sistema
exibir mensagem a data e hora do sistema estao corretas
Dar pausa
4 Criar um Bat para add um chave de registro para bloquear o painel de controle.