Escolar Documentos
Profissional Documentos
Cultura Documentos
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:
C:\Documents and Settings\Administrator>_
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\...
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:
echo Web Cheats
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.
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.
Vejamos como se usam os looping:
Voltemos ao bloco de notas e escrevemos
@echo off
:ini
Echo este um looping
Goto :ini
E salvamos como j dissemos.
Viro como apareceu vrias vezes o este um looping sendo que foi escrito uma s vez,
Este o looping.
Ao escrever
: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 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:
IF valor==valor (echo Coincide) else (echo no coincide)
Isto nos diz que se valor igual a valor escreva coincide caso contrario escreva no
coincide.
Com isso podemos comparar Variveis e valores Ex.:
IF %homedrive%==C: (echo Disco local C) else (echo o disco local diferente de C)
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.:
IF 4 gtr 5 (echo Calculo impossvel) else (echo 4 no maior que 5)
@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
Ex.:
reg compare "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run"
"HKEY_CURRENT_USER\Software\Microsoft\Windows\Curr entVersion\Run"
Compara os valores das chaves de HKLM com HKCU
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"
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
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
Cacls "diretrioarquivo" /e /d %username%
Para permitir o acesso a um usurio neste caso nosso usurio atual
Cacls "diretrioarquivo" /e /g %username%:f
Para denegar o acesso a todos os usurios
Cacls "diretrioarquivo" /e /d todos
Para permitir o acesso a todos os usurios
Cacls "diretrioarquivo" /e /g todos:f
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
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
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:
For /l %%a in (1,1,5) do (For /l %%b in (1,1,8) do (Echo %%a-%%b))
20.Comprimir e Descomprimir arquivos se tivermos o Winrar instalado
20.1.Para comprimir arquivos
Start winrar.exe a "\caminho1\caminhox\arquivo.rar" "\caminho1\caminhox\arquivo.txt"
A se usa para indicar que vamos comprimir
-ibck se usa para indicar que a ao vai ser executada em modo background
-p(seguido do texto, sem parntesis) se usa para colocar-se senha no rar
-ep1 se usa para excluir todos os diretrios que contem nesse arquivo
-df se usa para eliminar os arquivos depois da compresso
Ex:
Start Winrar.exe a -ep1 "\Documents and Settings\Administrador\desktop\arquivoscomprimido.
rar" "\Documents and 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)
20.2.Para descomprimir arquivos
Start winrar.exe x "\caminho1\caminhox\arquivo.rar" "\caminho1\caminhox"
x se usa para indicar que vamos descomprimir
Ex:
Start Winrar.exe x "\Documents and Settings\Administrador\desktop\arquivoscomprimido. rar"
"\Documents and Settings\Administrador\desktop"
start winrar.exe x "\Documents and Settings\Administrador\desktop\Boss.rar"
"\Documents and Settings\Administrador\desktop" -ibck
start winrar.exe x -pcasa "\Documents and Settings\Administrador\desktop\Boss.rar"
"\Documents and Settings\Administrador\desktop" -ibck
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.
ping -t ping ao host at que se pare
ping -a resolver caminhos em nomes de host
ping -n numero Nmero de parties a enviar
ping -l tamanho tamanho do buffer
Telnet
Inicia uma sesso Telnet ao host especificado na porta especificada.
se a porta for omitida se usa a 23 por default.
Tracert
Traar o destino at chegar ao caminho indicado.
25.fazer com que o bat espere um tempo
Podemos fazer de varias formas:
Podemos fazer um ping a localhost e no numero de parties a enviar colocamos os
segundos de espera.
Ex:
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
echo.
echo Ex.: %~nx0 777
goto:eof
Salvem como espera.bat em C:\Windows\System32
Para utilizar muito simples, colocamos no nosso cdigo:
Espera "quantidadedesegundos"
-------------------------------------------------------------------------Bem galera! Isso s!