Académique Documents
Professionnel Documents
Culture Documents
Contedo
1. Introduo
2. Variveis
2.1. Recortar uma Varivel
3. Looping
4. Comando IF
5. Comandos bsicos
6. Shutdown
7. Call
8. Parmetros
9. Shift
10. Attrib
11. Re-direcionadores
12. Manejo do Registro (Cuidado usando mal o regedit pode provocar at o colapso do sistema)
12.1. Adicionar chave ao registro
12.2. Apagar chave do registro
12.3. Consultar chave do registro
12.4. Exportar arquivo .reg de uma chave
12.5. Importar um arquivo .reg ao registro
12.6. Comparar duas chaves do registro
13. errorlevel
14.AT
15.SUBST
16.ASSOC
17.CACLS
18.Setlocal e Endlocal
19. FOR
20. Comprimir e Descomprimir arquivos se tivermos o Winrar instalado
20.1. Para comprimir arquivos
20.2. Para descomprimir arquivos
21.modificar tamanho do console
21. modificar tamanho do console
22. Ativar ou desativar o firewall do Windows
23. Tabelas
24. Comandos de rede
25. Fazer com que o bat espere um tempo
1. Introduo
Batch uma linguagem scripting, e para sua utilizao utilizamos o console do Sistema do Windows (DOS).
As linguagens do tipo scripting, utilizamos para escrevermos script
Scripts so utilizados para automatizar tarefas.
Para iniciarmos no mundo batch somente necessitaremos umprograma o bloco de Notas, ou qualquer outro
que edite arquivos de texto, (por favor, no usar o Word, nem similares) um muito bom tambm o
notepad++ ou editpad que o mesmo que uso.
Antes de iniciarmos a criao dos nossos scripts vamos aprender a utilizar o console, este vai ser o que
interpretar os cdigos que digitaremos.
Para abrir o console vamos ao Menu iniciar>executar (ou use a tecla do logotipo do Windows + r), ali
escreveremos cmd.exe e depois Enter.
Foi aberta uma janela negra, com um sublinhado piscando este o cursor, a direita do cursor temos o
Prompt:
O Prompt nos mostra onde estamos localizados virtualmente, o que vemos um caminho e um >, o > nos diz que
terminou o caminho e comea a ordem que ns escreveremos.
O caminho esta composto por [unidade]:\diretrio\...
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 1/17
3/7/2014 Tutorial Batch (Todos os niveis)
Os dois pontos dizem que o anterior a unidade de disco, no meu caso C e o que segue so os diretrios
delimitados por uma barra invertida \ no confunda com /.
As ordens que ingressarmos ao console, estaro compostos do seguinte maneira
[Comando] [Parmetros]
Agora vamos fazer que abaixo do Prompt seja escrita uma linha que diga Web Cheats, para fazer isso
escreveremos:
Neste caso echo o comando e Web Cheats so os parmetros (seriam dois parmetros, os parmetros
so delimitados por espao, um espao indica onde termina um parmetro e comea outro)
O comando Echo mostra um texto e tambm oculta a visualizao do Prompt.
Para ocultar o Prompt escreveremos echo off , para visualizar echo on.
Para deixar uma regio em branco escreveremos echo. (sem aspas)
Para obter a ajuda de um comando, escreveremos
Comando /?
H dois tipos de comandos os internos e os externos, os internos so todos os comandos que vm integrados
com o console e os externos so arquivos que funcionam como comandos.
Para obter a lista dos comandos internos, escreveremos o comando Help.
Agora com toda esta teoria, comeamos a criar nossos scripts.
Vamos ao bloco de Notas, e escreveremos o seguinte:
E salvamos como *. bat, onde est * vai ser o nome do arquivo que queremos [assim que se salva um script
batch].
Depois buscamos o arquivo.bat e lhe damos duplo click.
E foi aberto o console dizendo Web Cheats, e abaixo pressione uma tecla para continuar., ao
pressionarmos uma tecla termina a janela.
O comando Pause serve para inserirmos uma pausa, e no deixar que continue o script, se no estivesse o
script se fecharia, pois no existiriam mais ordens abaixo o script finaliza. Esta foi uma demonstrao de
um script. Agora voltemos ao console.
Para mover-nos entre os diretrios usaremos o comando cd
Ex.:
Ir a uma pasta anterior usa-se: cd..
Ir ao disco raiz usamos: cd\
Ir a uma pasta dentro do que estamos usamos: cd pasta
Ir a um caminho especifico usamos: cd Disco:\diretrio\Subdiretrios
Para listar diretrios usamos o comando dir, para ver os parmetros escrevemos no console dir/? E nos Dara
a ajuda deste comando.
Por exemplo, para ver os arquivos que temos no desktop primeiro vamos ao desktop
Usamos cd desktop e depois escrevemos dir /a
2. Variveis
Para ver todas as Variveis usamos o comando set
Se escrevermos set e depois Enter veremos todas as Variveis.
Estas so as Variveis mais usadas:
As Variveis nos servem para indicar um valor que pode ser um numero um caminho ou o que queremos, onde
escrevemos a varivel estamos escrevendo na realidade o valor da Varivel.
A varivel se escreve com %% exemplo para indicar a varivel homepath escreveremos %homepath%.
Por exemplo, podemos listar o contedo do desktop sem estar nele, usando:
Dir /a "%homedrive%%homepath%\desktop", por precauo sempre que nos referimos a um caminho
usaremos aspas duplas "".
Para definir uma varivel fazemos
Set Vari_vel=valor
Vari_vel o nome da nossa varivel e em valor o que queremos que seja a Varivel
No bat para que na varivel o usurio defina o valor fazemos:
Set /p Varivel=
Set /a Varivel=numero+numero
Set /a Varivel=numero-numero
Tambm se uma varivel um valor numrico podemos trabalhar com ela, por exemplo,
Set /a Varivel=%random%*%random%
Na linguagem Batch no temos suporte para restos, se fazemos 3/2 no nos Dara 1.5 e sim 1 (arredonda para
abaixo)
Para mais informao sobre Variveis set?
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 3/17
3/7/2014 Tutorial Batch (Todos os niveis)
%nomevariante:~numerosdecaracteresanteriores,numer osdecaracteresquequeremosver%
%original:~5,4%
%original:~2%
%original:~-3%
%original:~0,-3%
3. looping
Um loop ou ciclo de repetio, em programao, uma seqncia que se realiza repetidas vezes a algo
dentro do cdigo, at que a condio designada ao looping deixe de existir.
@echo off
:ini
Echo este um looping
Goto :ini
:looping
Referimos-nos que ali um ponto de partida e ao colocar onde quisermos Goto: looping o que fazemos
voltar ao ponto de partida, claro que algo assim no looping no terminara nunca e teremos que fechar o
console a mo.
Analisemos:
@echo off:
@ faz com que o comando atual no tenha eco, o eco dizemos que aparea o Prompt, e o echo off desativa o
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 4/17
3/7/2014 Tutorial Batch (Todos os niveis)
eco, ou seja, nunca veremos o Prompt a menos que escrevemos echo on.
4. Comando IF
O comando IF diz que se algo ocorrer, em conseqncia faa algumas coisas ou se algo no ocorrer que faa
outras coisas.
Vejamos:
Isto nos diz que se valor igual a valor escreva coincide caso contrario escreva no coincide.
Com isso podemos comparar Variveis e valores Ex.:
Podemos comparar se uma varivel igual outra podemos comparar se maior, menor, maior ou igual menor
ou igual, diferente.
EQU - igual
NEQ - no igual
LSS - menor que
LEQ - menor que ou igual
GTR - maior que
GEQ - maior que ou igual
Ex.:
@echo off
Echo 2 mais quanto igual 5? [escreva somente o numero]
Set /p rta=
Set /a soma=2+%rta%
IF %soma%==5 (echo correto)
Pause
Exit
Na condio podemos remover a parte do else (), se no queremos que passe nada que contradiga a condio.
Ao usar o IF, podemos indicar se a varivel x esta definida ou no, e seguindo isso poder realizar diversas
aes, vejamos alguns exemplos:
Para indicar se x esta definida que escreva correto caso contrario que escreva incorreto
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 5/17
3/7/2014 Tutorial Batch (Todos os niveis)
Para indicar se x no esta definida que escreva incorreto caso contrario que escreva correto
@echo off
Echo Menu
Echo.
Echo 1. Escreva a palavra batch
Echo 2. O que isso?
Echo 3. Sair
Echo pressione o numero da opo e depois enter
Set /p opc=
If %opc%==1 (goto:escreva)
If %opc%==2 (goto:queisso)
If %opc%==3 (exit)
:escreva
Echo Batch
Pause
Exit
:queisso
Echo -esta- uma palavra
Pause
Exit
Algum j se perguntou para que serve exit, serve para terminar o console do cmd limpar as variveis etc.
5.Comandos bsicos
Para explorar cada comando usamos o nome do comando seguido por /?
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 6/17
3/7/2014 Tutorial Batch (Todos os niveis)
6.Shutdown
Com o shutdown podemos apagar, reiniciar e anular um equipamento em uma quantidade de segundos
Para apagar o equipamento em 30 segundos: Shutdown s t 30
Para reiniciar: Shutdown r
Para anular: Shutdown a
Para forar o fechamento de aplicativos sem advertir usamos f
Exemplo de reinicio forando o fechamento de aplicativos, em 5 segundos com um comentrio
Shutdown r f t 5 c "comentrio"
7.Call
Usa-se para chamar um arquivo de lotes externo ou alguma parte do arquivo de lotes atual
Ex.: Call caminho do arquivo de lote
Para chamar a uma parte do arquivo
Ex.: Call :looping
Podemos Adicionar parmetros colocando depois do que queremos chamar ex: call:looping 123
Aqui enviamos com o looping o parmetro de valor 123.
8.Parmetros
Um parmetro um tipo de varivel que recebida por uma funo, procedimento ou sub-rotina.
Os parmetros podem ser de fabrica ou podemos colocar ns mesmos.
Por exemplo:
Neste exemplo ao abrir o arquivo se iniciara com um parmetro com valor abcdef.
O bat que abrir pode comprovar se est sem parmetro em sua execuo e seguir ou executar algo com o
IF.
Por exemplo:
Nas primeiras linhas de arquivo.bat escreveremos este fragmento de cdigo:
Set var=%1
IF %var%==abcdef (echo o parmetro abcdef foi recebido corretamente)
O parmetro %0 o prprio bat, este est definido e predeterminado, ou seja, se o arquivo bat estiver no
disco c, o parmetro %0 ser C:\arquivo.bat
Agora enviaremos a :ini um caminho como parmetro
Call:ini "%homedrive%%homepath%\desktop\arquivo.bat"
pause
:ini
Echo %~f1 file
Echo %~p1 path
Echo %~n1 name
Echo %~x1 xtencion
Echo %~s1 single
Echo %~a1 atribute
Echo %~t1 time
Echo %~z1 zone
Goto:eof
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 7/17
3/7/2014 Tutorial Batch (Todos os niveis)
9.Shift
Muda a posio dos parmetros.
Por exemplo se tivermos o parmetros: a [%1], b [%2], c [%3], d [%4], e [%5], f [%6]
Shift /1
Shift /2
Para entender melhor como Apagar o parmetro do modificador e reagrupar os nmeros dos parmetros
Segundo sua ordem.
10.Attrib
Muda ou mostra os atributos do arquivo
Para mostrar usamos:
Attrib arquivo
Para modificarmos adc + adicionamos atributos e com o - removemos.
R Atributo de somente leitura do arquivo.
A Atributo de arquivo de armazenamento.
S Atributo de arquivos do sistema.
H Atributo de arquivo oculto.
Por exemplo, para ocultar um arquivo e dar lhe atributos de sistema fazemos:
Attrib +h +s "arquivo"
Attrib -h "arquivo"
11.Redirecionadores
Para escrever um arquivo de texto que diga abc fazemos:
Ping n 1 localhost>nul
Reg add "chave" /v "nome ou valor da entrada" /t "tipo de entrada" /d "dados da entrada"
REG_SZ
REG_MULTI_SZ
REG_DWORD_BIG_ENDIA N
REG_DWORD
REG_BINARY
REG_DWORD_LITTLE_EN DIAN
REG_NONE
REG_EXPAND_SZ ]
exemplo:
exemplo:
Se quisermos sobrescrever uma entrada j existente, fazemos como se adicionssemos uma nova chave porem
colocamos o parmetro /f que no pede confirmao.
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 9/17
3/7/2014 Tutorial Batch (Todos os niveis)
Ex.:
Ex.:
13.errorlevel
A varivel errorlevel muito til para saber se algum comando no foi executado, no caso de existir erros
ao processar um comando, errorlevel ser 1 se ocorrer tudo bem o errorlevel ser 0, ao no encontrar o
comando o errorlevel ser 9009.
Ex.:
Abcdef
Echo %errorlevel%
Pause
Aqui nos Dara um errorlevel de 9009 j que abcdef no um comando, a menos que tenhamos um comando
chamado abcdef.
Ex:
Cd "C:\abcdef"
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 10/17
3/7/2014 Tutorial Batch (Todos os niveis)
Echo %errorlevel%
Errorlevel nos retornar 1 a menos que tenhamos uma pasta no c chamada abcdef, se tivermos o errorlevel
ser 0.
14.AT
At serve para criar tarefas programadas:
At hh:mm processo.exe
At hh:mm /Interactive processo.exe
Ao usar o /Interactive permite a interao com o usurio, se no se utilizar o /Interactive se executaria o
processo porem em segundo plano.
Para Apagar uma tarefa programada fazemos
At numerodatarefa /delete
O numero da tarefa colocamos o numero identificador da tarefa, que nos da o cmd quando criamos a tarefa.
Tudo que for executado no at, sair do usurio system e que nos d uma escala em privilgios.
15.SUBST
Atribui uma letra a um caminho
Subst W: %homedrive%%homepath%\desktop
Aqui criamos um disco W para acesso no caminho %homedrive%%homepath%\desktop
Para Apagar esta unidade virtual usamos
Subst W: /D
16.ASSOC
Mostra ou modifica as associaes de extenses de arquivos, para mostrar usa-se somente assoc para
modificar usa-se Assoc .extenso=tipodearquivo
Ex.: assoc .txt=batfile
Assim os arquivos bat sero vistos como arquivos de texto.
17.CACLS
Mostra ou modifica o acesso dos usurios sobre os diretrios ou arquivos.
Para denegar o acesso a um usurio neste caso nosso usurio atual
18.Setlocal e Endlocal
Setlocal indica que estamos a ponto de realizar algumas mudanas nas Variveis de ambiente no script se
deve manter-se no contexto atual, ao usar setlocal as Variveis ficam como esto atualmente por mais que se
modifique, depois do setlocal nas Variveis se usa endlocal, dai as Variveis voltam como estavam antes.
Ex.:
Set x=abcdef
Setlocal
Set x=xsakxal
Echo %x%
Endlocal
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 11/17
3/7/2014 Tutorial Batch (Todos os niveis)
Echo %x%
Pause
A varivel x ser modificada estando dentro do setlocal, porem com endlocal ela volta ao normal.
Ao invs setlocal admite modificadores
ENABLEEXTENSIONS / DISABLEEXTENSIONS
Habilita ou desabilita as extenses.
Por exemplo
Setlocal ENABLEEXTENSIONS
Echo errorlevel ser definida se as extenses estiverem habilitadas
Echo %errorlevel%
Endlocal
Pause
No exemplo errorlevel nos deu 0, porque echo no deu erro e estava definido porque foram habilitadas as
extenses.
Outro exemplo
Setlocal DISABLEEXTENSIONS
Echo errorlevel no ser definido porque as extenses esto desabilitadas
Echo %errorlevel%
Endlocal
Pause
19.FOR
O for um dos comandos, mais complexos e de maior uso.
Comeamos: [Nota: estando no console usaremos %a porem estando em um bat usaremos %%a]
Neste cdigo observamos que com o modificador, /l indicamos que vai existir uma seqncia de nmeros na
parte "in ()", em "in" teremos numero inicial, o passo, numero final no exemplo acima contar de 1 em 1
comeando de 1 at 8, se tivesse sido 1,2,8 o "for" contaria de 2 em 2 comeando de 1 at 8.
Para cada vez ou cada numero que contar ser executado o cdigo que esta no "do" por isso no exemplo se
repete 8 vezes a frase.
Ao contrario a varivel %%a ter o valor do numero que estamos contando.
Ex.
Quando usamos o modificador /f indicamos que devolva o comando de dentro do "in", e este ser aplicado
no "do".
O comando de dentro do "in" se delimita com aspas simples ' '.
Ao escrever as linhas o "do" escrevera na tela o arquivo arquivo.txt dividido por linhas.
Pois o type receber a linha e o echo a escrevera.
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 12/17
3/7/2014 Tutorial Batch (Todos os niveis)
Aqui escrevera o arquivo.txt por linhas, a diferena do cdigo anterior que teramos erros nas linhas do
arquivo pois iriam ser cortadas.
Aqui nos escrevera as letras a b c, isso significa que passar pelo "do" com a letra a na varivel %%a depois
passar de volta ao "do" porem Agora a varivel %%a valer b e depois quando passe novamente pelo "do"
%%a ser c.
No for no podemos salvar uma varivel que muda, por isso no inicio do arquivo escreveremos setlocal
enabledelayedextension.
Isto habilitara a expansion de Variveis retardada.
Desta maneira podemos salvar Variveis no for, no da forma %Varivel% e sim !Varivel!
Ex.:
Set n=0
For /f "Skip=4 Tokens=1" %%a in ('type arquivo.txt') do (set /a n=!n!+1)
Para saber quantas vezes passaram pelo "do" as linhas do arquivo ficar armazenadas na varivel n o numero
de linhas do arquivo.txt
Se quisermos colocar um for dentro de outro, no devemos usar as mesmas Variveis do tipo %%x. Um
exemplo correto de for dentro de for seria:
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 13/17
3/7/2014 Tutorial Batch (Todos os niveis)
Settings\Administrador\desktop\arquivoqueseracompr imido.*"
start winrar.exe a -ep1 "\Documents and Settings\Administrador\desktop\Boss.rar"
"\Documents and Settings\Administrador\desktop\Oi.txt" -ibck
start winrar.exe a -ep1 -pcasa -df "\Documents and
Settings\Administrador\desktop\Boss.rar" "\Documents and
Settings\Administrador\desktop\Oi.txt"
-ibck (Neste ultimo exemplo a senha seria a palavra casa e sero eliminados os arquivos depois da
compresso)
Para desativar
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 14/17
3/7/2014 Tutorial Batch (Todos os niveis)
23.Tabelas
Modelos de Tabelas:
Modelo 1
Echo
Echo
Echo
Echo
Modelo 2
Echo
Echo
Echo
Echo
Echo
Modelo 3
Echo
Echo
Echo
Echo
Echo
Echo
Echo
Modelo 4
Echo
Echo
echo
echo
echo
24.Comandos de Rede
FTP
Iniciar o cliente FTP
IPCONFIG parmetros
Mostrar as caractersticas de configurao de IP
/all -> mostra toda a informao de configurao
/release adaptador -> libera o ip do adaptador especificado
/renew adaptador -> renova o ip para o adaptador especificado
/flushdns -> purga o cach de resoluo de dns
/registerdns -> atualiza as conexes dhcp e volta a registrar os nomes dns
/displaydns -> mostra o contedo do cach de resoluo dns
Netstat
Comando para verificar o estado atual da rede
Netstat -a Mostrar todos os pontos e conexes
Netstat -n Mostrar nmero de porta e caminhos
Netstat -r Mostrar a tabela de caminhos
Netstat -s Mostrar estatsticas por protocolo
Netstat -p tcp/udp Mostrar as conexes ativas TCP ou UDP
Nslookup
Utilizado para interpretar o dns
Ping
Enviar pacotes icmp a um determinado destino.
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 15/17
3/7/2014 Tutorial Batch (Todos os niveis)
Ping -n 1 localhost>nul
Espera um segundo e oculta o texto que aparece ao executar ping com o ">nul".
Ping -n 5 127.0.0.1>nul
Espera 5 segundos e oculta o texto que aparece ao executar ping com o ">nul".
Podemos colocar 127.0.0.1 ou localhost que o mesmo.
Localhost nosso PC, se estivermos sem conexo funciona melhor que 127.0.0.1.
Podemos criar um comando que executa ou espera.
ex:
@echo off
setlocal
If x%1x==xx (Goto: ajuda)
set tempo=%1
call:verif >nul 2>&1
goto:veriff
:verif
set /a ver=0x%tempo%
goto:eof
:veriff
If %errorlevel% neq 0 (Goto: ajuda)
call: code %tempo% >nul 2>&1
endlocal
goto:eof
:code
set /a tempoterm=%time:~0,2%*3600+%time:~3,2%*60+%time:~6 ,2%+%tempo%
set /a hs=%tempoterm%/86399
set d=%date:~0,2%
:ini
set /a tempoact=%time:~0,2%*3600+%time:~3,2%*60+%time:~6, 2%
if %d% neq %date:~0,2% (
set /a tempoterm=%hs%*-86399+%tempoterm%
set d=%date:~0,2%
if %hs% leq 0 (set /a hs-=1))
if %tempoterm% geq %tempoact% (goto :ini)
goto:eof
:ajuda
echo %~nx0 Insere uma pausa de n segundos
echo Criado por Carlos
echo.
echo Sintaxe:
echo %~nx0 Segundos
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 16/17
3/7/2014 Tutorial Batch (Todos os niveis)
echo.
echo Ex.: %~nx0 777
goto:eof
Espera "quantidadedesegundos"
---------------------------------------------------------------------------
http://www.webcheats.com.br/forum/outras-linguagens/1035350-tutorial-batch-todos-os-niveis.html 17/17