Escolar Documentos
Profissional Documentos
Cultura Documentos
Scripting (Batch) Portuguese Brazil. Tutorial
Scripting (Batch) Portuguese Brazil. Tutorial
www.mcsesolution.com.br
Conteúdo
Características dos arquivos de lote ....................................................................................................... 3
Executando arquivos de lote. ............................................................................................................. 3
Características de scripts PowerShell ................................................................................................. 3
Echo on e Echo off .................................................................................................................................. 4
Comando REM ........................................................................................................................................ 5
Redirecionadores .................................................................................................................................... 5
Comando SET (Váriaveis de ambiente) ................................................................................................... 6
Comando If .............................................................................................................................................. 8
Caracteres Especiais ................................................................................................................................ 8
Comando GOTO ...................................................................................................................................... 9
Comando FOR ....................................................................................................................................... 10
Comando Choice ................................................................................................................................... 11
Comando Netsh .................................................................................................................................... 12
www.mcsesolution.com.br
Características dos arquivos de lote
Arquivos de lote (batch), são arquivos de texto não formatado, geralmente criados usando um editor
de texto simples, que poder ser o edit ou notepad do Windows.
Os arquivos de lote, tem que possuir a extensão .BAT e em sistemas com NT, Windows 2000, 2003,
XP e 2008 podem também receber a extensão .CMD, iremos sempre usar aqui a extensão .BAT
(abreviação de BATCH) e que é compatível com quase todos os sistemas operacionais Microsoft.
Uma vez que salvamos um arquivo com determinado nome (preferencialmente com 8 caracteres) e
com a extensão .bat ou .cmd
Para executar um arquivo de lote basta informar o nome do arquivo no prompt de comando. Se
você criar um arquivo com o nome "meuteste.bat", basta digitar no meuteste e pressionar ENTER.
Exemplo c:\>meuteste
Atenção - Para arquivos com o mesmo nome a ordem de execução é a seguinte: Primeiro arquivos
com extensão .com, segundo .exe e por ultimo .bat.
Exemplo: Se você tiver três arquivos com o mesmo nome (teste.com, teste.exe e teste.bat), primeiro
executaria o teste.com, depois o teste.exe e depois o teste.bat.
Isto é uma herança do antigo sistema operacional CP/M. (é só para mostrar o ordem de execução)
Todos os comandos usados no prompt podem fazer parte de um arquivo de lote. Podemos usar
também alguns comandos extras, para trabalhar com sub-rotinas, variáveis, etc.
www.mcsesolution.com.br
Scripts powershell sao muitos similares aos já conhecidos scripts, porém para a execução depende
do Shell do powershell Smile
A grande diferença esta no poder de que essa ferramenta prove. A principio assusta quem não é de
DEV, mas é só começar para ver que não é um bicho de 7 cabeças.
São 129 ferramentas de linha de comando ("cmdlets") para executar tarefas comuns de
administração de sistemas, como gerenciamento de serviços, processos, logs de eventos,
certificados e do Registro, e o uso do WMI.
O comando ECHO seguido por um texto, na execução do arquivo esse texto aparecerá como uma
mensagem.
Sintaxe:
O Comando PAUSE apenas pausa o script, porém é muito útil quando precisamos que uma
mensagem ou execução bem sucedida seja vista.
Sintaxe:
PAUSE
-> script1.bat
---------------------------------------
@ECHO off
CLS
ECHO Hello World
PAUSE
---------------------------------------
Dica: Para pular uma linha basta usar o comando ECHO e um caractere ASCII especial, para conseguir
esse caractere basta manter a tecla ALT pressionada, digitar 16, soltar a tecla ALT , pressione
novamente ALT e digite 8.
www.mcsesolution.com.br
Comando REM
O comando REM permite inserir comentários, em arquivos de lote, e caso você não queira executar
alguma linha basta inserir o comando REM antes do comando.
Sintaxe:
REM [comentário]
-> script2.bat
---------------------------------------
REM Desenvolvido por Daniel Donda
@ECHO off
CLS
ECHO Hello World
REM PAUSE
---------------------------------------
Observação: neste script o comando pause não será executado, pois esta como comentário.
Redirecionadores
O Sinal > representa um redirecionador. Podemos redirecionar a saída da tela, para qualquer porta
existente no micro.
Temos as seguintes portas:
Paralelas LPT1,LPT2,LPT3
Seriais COM1, COM2, COM3
PRN - representa a porta da impressora no DOS
NUL - representa uma porta nula.
ARQUIVO - substitua por qualquer arquivo
Muito importante:
Quando redirecionamos qualquer comando ou arquivo para outro arquivo usando > ele cria um
novo arquivo.
Para que o redirecionamento seja adicionado em um arquivo já existente, temos que usar >>.
Veja no exemplo:
-> script3.bat
---------------------------------------
@ECHO OFF
CLS
ECHO Imprimindo a lista de arquivos do diretório atual...
DIR > lista.txt
ECHO Fim do diretorio >> lista.txt
TYPE lista.txt > prn
---------------------------------------
Neste exemplo o comando dir é redirecionado para um arquivo de texto chamado lista.txt e em
seguida o comando echo adiciona a frase FIM DO DIRETORIO ao arquivo lista.txt e por final comando
type redireciona o conteúdo de lista.txt para a impressora.
www.mcsesolution.com.br
-> script4.bat
---------------------------------------
REM Autor: Daniel Donda
@ECHO OFF
CLS
ECHO Este é meu arquivo de lote e quando
ECHO quiser continuar pressione qualquer tecla !
PAUSE > NUL
---------------------------------------
Neste exemplo o comando pause está sendo direcionado para nulo, os seja sua mensagem padrão
não será exibida.
Essas variáveis de ambiente são do sistema, porém podemos definir nossas próprias variáveis.
A definição de variáveis é bem simples:
As variáveis possuem um nome, exemplo computername, mas devemos usar % para fazer o uso
das variáveis em scripts, como no exemplos %computername%.
-> script5.bat
---------------------------------------
@ECHO OFF
CLS
SET SRT=SecurityResponse
MD C:%SRT%
COPY C:*.LOG /s C:%SRT%
---------------------------------------
Neste exemplo será definida a variável SRT, facilitando a criação de um diretorio e copia de arquivos.
www.mcsesolution.com.br
() Agrupamento !~- Operadores Unários
= *= /= %= += - Atribuição
= &= ^= |= <<= >>=
‘ Separador de expressões
-> script6.bat
---------------------------------------
@ECHO OFF
SET /A SOMA=2+5
ECHO SOMA DE 2+5=%SOMA%
SET /A DIVISAO=9/2
SET /A MOD=9%%2
ECHO DIVISAO DE 9/2=%DIVISAO% COM RESTO=%MOD%
SET /A MULT=7*7
ECHO MULTIPLICACAO DE 7X7=%MULT%
---------------------------------------
Neste exemplo o script gera vários valores de operações matemáticas básicas.
-> script7.bat
---------------------------------------
@ECHO OFF
CLS
SET /P NOME=QUAL O SEU NOME ?
ECHO OI %NOME%, VOCE ESTA USANDO O COMPUTADOR %COMPUTERNAME%
---------------------------------------
Neste exemplo o script lê o nome do usuário e imprime na tela o uma mensagem personalizada
com seu nome e o computador que esta usando.
Expansão de variáveis.
Uma mesma variável pode ser utilizada diversas vezes em um script e também pode ser definida
com valores diferentes durante a execução do script.
www.mcsesolution.com.br
Comando If
O comando If executa processos condicionais em arquivos de lote.
Existem diferentes maneiras de utilizar esse comando:
Sintaxe:
IF [NOT] ERRORLEVEL numero comando
IF [NOT] string1= = string2 comando
IF [NOT] EXIST arquivo comando
Como vimos na sintaxe o comando IF (Se) pode ser usado ‘ e’ ou ‘se não’.
-> script8.bat
---------------------------------------
@ECHO OFF
CLS
IF NOT EXIST C:\atributos.txt (attrib > atributos.txt ) ELSE TYPE
atributos.txt
---------------------------------------
Neste exemplo o comando IF verifica se "não" existe um determinado arquivo e caso a condição for
verdadeira (ou seja não existir o arquivo) ele será criado, se ele existir será exibido na tela.
-> script9.bat
---------------------------------------
@ECHO OFF
SET /P NUM=DIGITE UM NUMERO :
IF /I %NUM% EQU 10 (ECHO ACERTOU NA MOSCA
) ELSE ( ECHO ERROU
)
---------------------------------------
Neste exemplo é solicitado um valor para o usuário e se o valor for igual a 10 exibe uma mensagem
na tela.
Caracteres Especiais
ASCII - (American Standard Code for Information Interchange) © um conjunto de códigos para o
computador representar numeros, letras, pontuação e outros caracteres. Surgido em 1961, um dos
seus inventores foi Robert W. Bemer.
Fonte : Wikipedia
www.mcsesolution.com.br
Ao criar arquivos de lote é possivel definir caixas de mensagens e desenhos bem legais, basta seguir
a tabela ASCII.
Para conseguir utilizar esses caracters faça o seguinte:
Pressione ALT, Digite o numero, solte o ALT
Mais dicas:
Comando GOTO
Direciona o interpretador de comandos do Windows para uma linha identificada como sendo um
"label" em um programa em lotes.
Sintaxe:
GOTO label
Exemplo:
---------------------------------------------------------------
@echo off
:loop
echo Para cancelar pressione CTRL + C ou fique ai vendo isso...
goto loop
www.mcsesolution.com.br
---------------------------------------------------------------
Aqui o comando "GOTO" vai para linha onde existe o label chamado loop (poderia ser qualquer
outro nome).
Ele é muito usado em conjunto com outros comandos como choice, IF.
Verifique o uso do GOTO nos outros comandos abaixo.
Comando FOR
Executa um determinado comando para cada arquivo em um grupo de arquivos
Sintaxe:
FOR %variable IN (set) DO command [command-parameters]
Exemplo 1
-------------------------------------------------------------
@echo off
cls
echo Listando os arquivos que podem ser apagados.
echo --------------------------------------------
for %%1 in (*.tmp *.bak *.old) do @echo %%1
echo --------------------------------------------
echo Fim da lista.
-------------------------------------------------------------
Neste exemplo o comando "FOR" mostra o nome de todos os arquivos que possuirem a extensão
*.tmp, *.bak e *.old.
Exemplo 2
-------------------------------------------------------------
@ECHO OFF
for /l %%1 in (1,1,50) do @echo Eu sei contar ate %%1
-------------------------------------------------------------
Onde está 1,1,50 significa de 1 em 1 até 50, tente alterar até 5000 !
E nestes exemplos o comando usa %% para ser usado em arquivios de lote, se for executar na linha
de comando usa apenas %.
www.mcsesolution.com.br
Comando Choice
Exibe uma mensagem de aviso especificada, efetua uma pausa para o usuário escolher entre um
conjunto de teclas especificado e fornece um parâmetro ERRORLEVEL para um programa de lote.
Sintaxe :
CHOICE [/C[:]teclas] [/N] [/S] [/T[:]c,nn] [texto]
FrownAtenção - o utilitário choice não está disponível no Windows XP e nem no Windows 2000
Server e Professional. Mas pode ser feito o download e utilizado normalmente, porém muda as
sintaxes dependendo da versão.
Exemplo:
-----------------------------------------------------------------------
@echo off
cls
echo Escolha a cor que deseja utilizar (O comando color funciona apenas no
w2k em diante)
echo A - Verde
echo B - Azul
echo C - Rosa
choice /c:abc Escolha a cor
:verde
color 2
goto fim
:azul
color 1
goto fim
:rosa
color 5
goto fim
:fim
-----------------------------------------------------------------------
Nesse exemplo criamos um menu com 3 opções de cores para o prompt e usamos o comando choice
para fazer a escolha
O membro do grupo, Otto Luiz Castro Nunes comentou sobre o artigo indicando que o choice
também não está disponivel no Windows Server 2000.
Obrigado por colaborar.
Não se preocupe, está nos mais atuais. Até mesmo no Windows 8.
www.mcsesolution.com.br
Comando Netsh
O Comando Netsh é muito poderoso, e após um tempo utilizando este comando, acredito que você
não vai abrir as configurações de rede e alterar o IP na Interface Grafica.
Podemos também utilizar esse comando em arquivos de lote a fim de mudar as configurações de
multiplos computadores que executam o Windows XP, Server 2003, Vista e 2008.
O que pode ser feito com o comando NETSH.EXE ??
Alterar as configurações de TCP/IP para utilizar o endereço IP 10.0.0.2 com o gateway 10.0.0.1:
netsh interface ip set address name="Local Area Connection" static
10.0.0.2 255.0.0.0 10.0.0.1 1
Configurar o DNS
netsh interface ip set dns "Local Area Connection" static 10.0.0.1
Configurar o WINS
netsh interface ip set WINs "Local Area Connection" static 10.0.0.1
www.mcsesolution.com.br
Exibir configuraão do NAP
netsh nap client show configuration
www.mcsesolution.com.br