0% acharam este documento útil (0 voto)
114 visualizações29 páginas

Batchscript

Este documento é um tutorial abrangente sobre programação em Batch, abordando desde conceitos básicos como variáveis e comandos até tópicos avançados como manipulação do registro e looping. Ele inclui exemplos práticos e explicações detalhadas para ajudar os usuários a automatizar tarefas no console do Windows. O conteúdo é estruturado em seções que facilitam a compreensão e a aplicação dos conceitos apresentados.

Enviado por

Anderson Rds
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
114 visualizações29 páginas

Batchscript

Este documento é um tutorial abrangente sobre programação em Batch, abordando desde conceitos básicos como variáveis e comandos até tópicos avançados como manipulação do registro e looping. Ele inclui exemplos práticos e explicações detalhadas para ajudar os usuários a automatizar tarefas no console do Windows. O conteúdo é estruturado em seções que facilitam a compreensão e a aplicação dos conceitos apresentados.

Enviado por

Anderson Rds
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Olá galera!

Ha uma semana estava fazendo este tópico e finalmente


chegou a hora de postar!

Tutorial de programação em Batch (todos os níveis)

Conteúdo

1. Introdução
2. Variáveis
2.1. Recortar uma Variável
3. Looping
4. Comando IF
5. Comandos básicos
6. Shutdown
7. Call
8. Parâmetros
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. Introdução
Batch é uma linguagem scripting, e para sua utilização utilizamos o
console do Sistema do Windows (DOS).
As linguagens do tipo scripting, utilizamos para escrevermos script
Scripts são utilizados para automatizar tarefas.
Para iniciarmos no mundo batch somente necessitaremos um
programa o bloco de Notas, ou qualquer outro que edite arquivos de
texto, (por favor, não usar o Word, nem similares) um muito bom
também é o nãotepad++ ou editpad que é o mesmo que uso.
Antes de iniciarmos a criação dos nossos scripts vamos aprender a
utilizar o console, este vai ser o que interpretará os códigos 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>_
Clique para expandir...
O Prompt nos mostra onde estamos localizados virtualmente, o que
vemos é um caminho e um >, o > nos diz que terminou o caminho e
começa a ordem que nós escreveremos.
O caminho esta composto por [unidade]:\diretório\...
Os dois pontos dizem que o anterior é a unidade de disco, no meu
caso C e o que segue são os diretórios delimitados por uma barra
invertida “\” não confunda com /.
As ordens que ingressarmos ao console, estarão compostos do
seguinte maneira
[Comando] [Parâmetros]
Agora vamos fazer que abaixo do Prompt seja escrita uma linha que
diga “Web Cheats”, para fazer isso escreveremos:

echo Web Cheats


Clique para expandir...
Neste caso “echo” é o comando e “Web Cheats” são os parâmetros
(seriam dois parâmetros, os parâmetros são delimitados por espaço,
um espaço indica onde termina um parâmetro e começa outro)
O comando Echo mostra um texto e também oculta a visualização
do Prompt.
Para ocultar o Prompt escreveremos echo off , para visualizar echo
on.
Para deixar uma região 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
são todos os comandos que vêm integrados com o console e os
externos são arquivos que funcionam como comandos.
Para obter a lista dos comandos internos, escreveremos o comando
“Help”.
Agora com toda esta teoria, começamos a criar nossos scripts.
Vamos ao bloco de Notas, e escreveremos o seguinte:

echo Web Cheats


pause
Clique para expandir...
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 não deixar que
continue o script, se não estivesse o script se fecharia, pois não
existiriam mais ordens abaixo o script finaliza. Esta foi uma
demonstração de um script. Agora voltemos ao console.
Para mover-nos entre os diretórios 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:\diretório\Subdiretórios”

Para listar diretórios usamos o comando dir, para ver os


parâmetros 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. Variáveis
Para ver todas as Variáveis usamos o comando set
Se escrevermos set e depois Enter veremos todas as Variáveis.
Estas são as Variáveis mais usadas:

%ALLUSERSPROFILE% C:\Documents and Settings\All Users


(caminho da pasta com a configuração para todos os usuários)
%APPDATA% C:\Documents and Settings\ {usuário} \Dados de
aplicativos
(caminho da pasta com Dados de aplicativos)
%COMPUTERNAME% nome do equipamento
(nome do equipamento)
%COMSPEC% C:\Windows\System32\cmd.exe
(caminho do interpretador de comandos)
%HOMEDRIVE% unidade onde estão os dados do usuário (C
(unidade onde se encontram os dados de usuário)
%HOMEPATH% \Documents and Settings\{usuário}
(caminho a pasta do usuário atual)
%USERPROFILE% C:\Documents and Settings\{usuário}
(Incluindo unidade)
%PATH% C:\Windows\System32\;C:\Windows\
(caminhos onde se buscam executáveis)
%PATHEXT%%%%. COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ;
.WSF; .WSH;
(extensões de arquivo executáveis)
%PROGRAMFILES% C:\arquivos de programa
(caminho da pasta arquivos de programa)
%PROMPT% $P$G
(Formato do interpretador de comandos)
%SYSTEMDRIVE% C:
(unidade onde está instalado Windows)
%SYSTEMROOT% e %WINDIR% C:\Windows
(contem a pasta do Windows)
%TEMP% e %TMP% C:\DOCUME~1\{usuário}\LOCALS~1\Temp
(caminho da pasta Temp)
%USERNAME% Ex. Computer
(nome de usuário atual)
%DATE% 19/11/2010
(data atual)
%TIME% 00:00:00,00
(Hora atual)
%CD% C:\
(pasta atual com seu caminho completo)
%errorlevel% 0 ou 1
(Código de saída do comando anterior)
%RANDOM% 32767
(Número aleatório de 0 a 32767)
Clique para expandir...
As Variáveis nos servem para indicar um valor que pode ser um
numero um caminho ou o que queremos, onde escrevemos a variável
estamos escrevendo na realidade o valor da Variável.
A variável se escreve com %% exemplo para indicar a variável
homepath escreveremos %homepath%.
Por exemplo, podemos listar o conteúdo do desktop sem estar nele,
usando:
Dir /a "%homedrive%%homepath%\desktop", por precaução
sempre que nos referimos a um caminho usaremos aspas duplas "".
Para definir uma variável fazemos
Set Vari_ável=valor
Vari_ável é o nome da nossa variável e em valor o que queremos que
seja a Variável
No bat para que na variável o usuário defina o valor fazemos:

Set /p Variável=
Clique para expandir...
Não há valor porque o valor ou usuário é quem define
Para definir Variáveis com resultados de somas subtrações
multiplicações divisões
Usamos o /a depois de set
Ex.:

Set /a Variável=numero+numero
Set /a Variável=numero-numero
Clique para expandir...
Também se uma variável é um valor numérico podemos trabalhar
com ela, por exemplo,

Set /a Variável=%random%*%random%
Clique para expandir...
Na linguagem Batch não temos suporte para restos, se fazemos 3/2
não nos Dara 1.5 e sim 1 (arredonda para abaixo)
Para mais informação sobre Variáveis set?

2.1. Recortar uma Variável


Podemos tomar algo de uma variável, por exemplo:
Há uma variante chamada original e seu valor é abcdefghijk
Se quisermos somente obter as letras fghi, temos que ver quantas
letras
Há antes do f neste caso seriam 5 (abcde) e quantos caracteres
ocupa
O que queremos ver neste caso seriam 4 (fghi).

%nomevariante:~numerosdecaracteresanteriores,numerosdecaract
eresquequeremosver%
Clique para expandir...
No exemplo anterior seria 5,4 (nos mostraria somente fghi)

%original:~5,4%
Clique para expandir...
Agora queremos mostrar a partir do c em diante

%original:~2%
Clique para expandir...
Agora queremos mostrar os últimos 3 caracteres

%original:~-3%
Clique para expandir...
Agora queremos mostrar tudo menos os últimos três caracteres

%original:~0,-3%
Clique para expandir...
Para fazer o sinal estando no cmd, fazemos com alt+126

3. looping
Um loop ou ciclo de repetição, em programação, é uma seqüência
que se realiza repetidas vezes a algo dentro do código, até que a
condição 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
Clique para expandir...
E salvamos como já dissemos.
Virão como apareceu várias vezes o “este é um looping” sendo que
foi escrito uma só vez,
Este é o looping.
Ao escrever

:looping
Clique para expandir...
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 não terminara nunca e teremos que
fechar o console a mão.
Analisemos:

@echo off:
@ faz com que o comando atual não tenha eco, o eco dizemos que
apareça 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 conseqüência faça
algumas coisas ou se algo não ocorrer que faça outras coisas.
Vejamos:

IF valor==valor (echo Coincide) else (echo não coincide)


Clique para expandir...
Isto nos diz que se valor é igual a valor escreva coincide caso
contrario escreva não coincide.
Com isso podemos comparar Variáveis e valores Ex.:

IF %homedrive%==C: (echo Disco local C) else (echo o disco local é


diferente de C)
Clique para expandir...
Podemos comparar se uma variável é igual à outra podemos
comparar se é maior, menor, maior ou igual menor ou igual,
diferente.

EQU - igual
NEQ - não igual
LSS - menor que
LEQ - menor que ou igual
GTR - maior que
GEQ - maior que ou igual
Clique para expandir...
Ex.:

IF 4 gtr 5 (echo Calculo impossível) else (echo 4 não é maior que 5)


Clique para expandir...
Ao invés de usar um comando na condição podemos usar vários:

IF 5 lss 7 (Echo 5 é menor que 7


Echo 7 é maior que 5
Pause
) else (
Echo.
)
Clique para expandir...
Exemplo código integrando IF e set:

@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
Clique para expandir...
Na condição podemos remover a parte do else (), se não queremos
que passe nada que contradiga a condição.
Ao usar o IF, podemos indicar se a variável x esta definida ou não,
e seguindo isso poder realizar diversas ações, vejamos alguns
exemplos:
Para indicar se x esta definida que escreva correto caso contrario
que escreva incorreto

IF defined x (echo correto) else (echo incorreto)


Clique para expandir...
Para indicar se x não esta definida que escreva incorreto caso
contrario que escreva correto

IF not defined x (echo incorreto) else (echo correto)


Clique para expandir...
Podemos verificar a existência de um arquivo no diretório

IF exist "%windir%" (echo existe) else (echo não existe)


Clique para expandir...
Podemos também verificar a inexistência de um arquivo no diretório

IF not exist "C:\musica. mp3" (echo não existe) else (echo existe)
Clique para expandir...
Criaremos um menu com IF, set e Goto

@echo off
Echo Menu
Echo.
Echo 1. Escreva a palavra batch
Echo 2. O que é isso?
Echo 3. Sair
Echo pressione o numero da opção 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
Clique para expandir...
Alguém já se perguntou para que serve exit, serve para terminar o
console do cmd limpar as variáveis etc.

5.Comandos básicos
Para explorar cada comando usamos o nome do comando seguido por
/?

Cls - limpa a tela


Type “caminhoarquivo” – escreva na tela um arquivo
DO “caminhoarquivo” – limpa um arquivo
Copy “caminhoorigem” “caminhofinal” – Copia um arquivo
Move “caminhoorigem” “caminhofinal” – Copia um arquivo
Ren “caminhoorigem” “novonome” – renomear um arquivo
Title novo titulo – muda o titulo do console
Md “caminho diretório” – cria uma pasta
Rd “caminho diretório” - limpa uma pasta
Tasklist – Lista os processos atuais
Taskkill /f /im “processo.extensão” – termina um processo
Taskkill /pid “numerodepid” – termina um processo indicando o
numero de pid
Fc “caminhoarquivo1” “caminhoarquivo2” – Compara dois arquivos
Find “cadeiadetexto” “caminhoarquivo” – Busca em um arquivo uma
cadeia de texto
Findstr “cadeiadetexto” “caminhoarquivo” – Busca uma cadeia em
vários diretórios
Format – formata uma unidade
Start – Inicia uma aplicação
Clique para expandir...
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 forçar o fechamento de aplicativos sem advertir usamos –f
Exemplo de reinicio forçando o fechamento de aplicativos, em 5
segundos com um comentário

Shutdown –r –f –t 5 –c "comentário"
Clique para expandir...
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 parâmetros colocando depois do que queremos
chamar ex: call:looping 123
Aqui enviamos com o looping o parâmetro de valor 123.

8.Parâmetros
Um parâmetro é um tipo de variável que é recebida por uma função,
procedimento ou sub-rotina.
Os parâmetros podem ser “de fabrica” ou podemos colocar nós
mesmos.
Por exemplo:

Call "arquivo.bat" abcdef


Clique para expandir...
Neste exemplo ao abrir o arquivo se iniciara com um parâmetro com
valor abcdef.
O bat que abrirá pode comprovar se está sem parâmetro em sua
execução e seguir ou executar algo com o IF.
Por exemplo:
Nas primeiras linhas de arquivo.bat escreveremos este fragmento
de código:

Set var=%1
IF %var%==abcdef (echo o parâmetro abcdef foi recebido
corretamente)
Clique para expandir...
O parâmetro %0 é o próprio bat, este está definido e
predeterminado, ou seja, se o arquivo bat estiver no disco c, o
parâmetro %0 será C:\arquivo.bat
Agora enviaremos a :ini um caminho como parâmetro

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
Clique para expandir...
O Goto:eof se usa para terminar a função

%~f1 - retorna o caminho e o arquivo de %1.


%~d1 - retorna a letra da unidade de %1.
%~p1 - retorna somente o caminho do arquivo %1.
%~n1 - retorna somente o nome de arquivo %1.
%~x1 - retorna somente a extensão do arquivo %1.
%~s1 - retorna somente o caminho, com diretórios, com nomes
curtos do arquivo %1.
%~a1 - retorna os atributos do arquivo.
%~t1 - retorna a hora/data do arquivo %1
%~z1 - retorna o tamanho do arquivo %1.
Clique para expandir...
9.Shift
Muda a posição dos parâmetros.
Por exemplo se tivermos o parâmetros: a [%1], b [%2], c [%3], d
[%4], e [%5], f [%6]

Shift /1
Clique para expandir...
Os parâmetros mudam: b [%1], c [%2], d [%3], e [%4], f [%5]

Shift /2
Clique para expandir...
Os parâmetros mudam: a [%1], c [%2], d [%3], e [%4], f [%5]

Para entender melhor é como Apagar o parâmetro do modificador e


reagrupar os números dos parâmetros 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"
Clique para expandir...
E para voltar velo fazemos:

Attrib -h "arquivo"
Clique para expandir...
11.Redirecionadores
Para escrever um arquivo de texto que diga abc fazemos:

Echo abc > "caminhodoarquivotxt.txt"


Clique para expandir...
Para Adicionar outra linha ao arquivo sem sobre escrever fazemos:

Echo def >> "caminhodoarquivotxt.txt"


Clique para expandir...
Podemos também ocultar a saída de um comando com uma re-
direção
Ex.:

Ping –n 1 localhost>nul
Clique para expandir...
O >nul se usa para ocultar o texto de saída
Também podemos redirecionar a uma impressora com >prn
Para redirecionar a uma porta paralela PRN, LPT1, LPT2, LPT3, para
redirecionar a uma porta serial COM1, COM2, COM3, etc.

12.Manejo do Registro (Cuidado ao usar esses comandos)


Isso é útil se queremos Adicionar um programa ao iniciar do nosso
sistema incluindo o próprio bat, ou fazer mudanças sem
necessidade de entrar no regedit.

12.1.Adicionar chave ao registro

Reg add "chave" /v "nome ou valor da entrada" /t "tipo de


entrada" /d "dados da entrada"
Clique para expandir...
Os tipos de entradas são:

REG_SZ
REG_MULTI_SZ
REG_DWORD_BIG_ENDIA N
REG_DWORD
REG_BINARY
REG_DWORD_LITTLE_EN DIAN
REG_NONE
REG_EXPAND_SZ ]
Clique para expandir...
exemplo:

reg add
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curren
tVersion\Run" /v "exemplo" /t reg_sz /d "C:\exemplo.bat"
Clique para expandir...
12.2.Apagar chave do registro

Reg delete "chave" /v "nome da entrada" /f (executa sem pedir


confirmação)
Clique para expandir...
exemplo:

reg delete
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curren
tVersion\Run" /v "exemplo" /f
Clique para expandir...
Se quisermos sobrescrever uma entrada já existente, fazemos
como se adicionássemos uma nova chave porem colocamos o
parâmetro /f que não pede confirmação.

12.3.Consultar chave do registro

Reg query "chave" /v "nome da entrada"


Clique para expandir...
Podemos usar os modificadores [/ve] [/s]
/ve Consultar o valor “de fabrica”
/s Consulta sub chaves e valores
Ex.:

reg query
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curren
tVersion\Run"
Clique para expandir...
Consultarmos a chave
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curren
tVersion\Run"

12.4.Exportar arquivo .reg de uma chave

Reg export "chave" “arquivo pra onde se exportara o .reg”


Clique para expandir...
Ex.:

reg export
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curren
tVersion\Run" "%homedrive%%homepath%\desktop\HKLMRun.reg"
Clique para expandir...
No seu desktop será criado o arquivo HKLMRun.reg com os valores
da chave
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curren
tVersion\Run"

12.5.Importar um arquivo .reg ao registro

Reg import “arquivo.reg”


Clique para expandir...
Ex.:

reg import “%homedrive%%homepath%\desktop\HKLMRun.reg”


Clique para expandir...
Será importado o arquivo HKLMRun.reg do desktop ao registro.

12.6.Comparar duas chaves do registro


Clique para expandir...
Reg compare "chave1" “chave2”
Clique para expandir...
Podemos Adicionar os modificadores
/v “nome da entrada” Para comparar uma entrada especifica
/ve Para comparar o valor “de fabrica”
Ex.:

reg compare
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curren
tVersion\Run"
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentV
ersion\Run"
Clique para expandir...
Compara os valores das chaves de HKLM com HKCU

13.errorlevel
A variável errorlevel é muito útil para saber se algum comando não
foi executado, no caso de existir erros ao processar um comando,
errorlevel será 1 se ocorrer tudo bem o errorlevel será 0, ao não
encontrar o comando o errorlevel será 9009.
Ex.:

Abcdef
Echo %errorlevel%
Pause
Clique para expandir...
Aqui nos Dara um errorlevel de 9009 já que abcdef não é um
comando, a menos que tenhamos um comando chamado abcdef.
Ex:

Cd "C:\abcdef"
Echo %errorlevel%
Clique para expandir...
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 interação com o usuário, se não 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 usuário system e que nos dá
uma escala em privilégios.
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 associações de extensões de arquivos, para
mostrar usa-se somente assoc para modificar usa-se Assoc
.extensão=tipodearquivo
Ex.: assoc .txt=batfile
Assim os arquivos bat serão vistos como arquivos de texto.

17.CACLS
Mostra ou modifica o acesso dos usuários sobre os diretórios ou
arquivos.
Para denegar o acesso a um usuário neste caso nosso usuário atual

Cacls "diretórioarquivo" /e /d %username%


Clique para expandir...
Para permitir o acesso a um usuário neste caso nosso usuário atual

Cacls "diretórioarquivo" /e /g %username%:f


Clique para expandir...
Para denegar o acesso a todos os usuários

Cacls "diretórioarquivo" /e /d todos


Clique para expandir...
Para permitir o acesso a todos os usuários

Cacls "diretórioarquivo" /e /g todos:f


Clique para expandir...
18.Setlocal e Endlocal
Setlocal indica que estamos a ponto de realizar algumas mudanças
nas Variáveis de ambiente no script se deve manter-se no contexto
atual, ao usar setlocal as Variáveis ficam como estão atualmente
por mais que se modifique, depois do setlocal nas Variáveis se usa
endlocal, dai as Variáveis voltam como estavam antes.
Ex.:

Set x=abcdef
Setlocal
Set x=xsakxal
Echo %x%
Endlocal
Echo %x%
Pause
Clique para expandir...
A variável x será modificada estando dentro do setlocal, porem com
endlocal ela volta ao normal.
Ao invés setlocal admite modificadores
ENABLEEXTENSIONS / DISABLEEXTENSIONS
Habilita ou desabilita as extensões.
Por exemplo

Setlocal ENABLEEXTENSIONS
Echo errorlevel será definida se as extensões estiverem
habilitadas
Echo %errorlevel%
Endlocal
Pause
Clique para expandir...
No exemplo errorlevel nos deu 0, porque echo não deu erro e
estava definido porque foram habilitadas as extensões.
Outro exemplo

Setlocal DISABLEEXTENSIONS
Echo errorlevel não será definido porque as extensões estão
desabilitadas
Echo %errorlevel%
Endlocal
Pause
Clique para expandir...
Neste exemplo errorlevel não esta definido, porque as extensões
estão desabilitadas.
Também suporta os modificadores
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
Este será explicado junto com for.

19.FOR
O for é um dos comandos, mais complexos e de maior uso.
Começamos: [Nota: estando no console usaremos %a porem estando
em um bat usaremos %%a]

For /l %%a in (1,1,8) do (echo repete esta 8 vezes)


Clique para expandir...
Neste código observamos que com o modificador, /l indicamos que
vai existir uma seqüência de números na parte "in ()", em "in"
teremos numero inicial, o passo, numero final no exemplo acima
contará de 1 em 1 começando de 1 até 8, se tivesse sido 1,2,8 o
"for" contaria de 2 em 2 começando de 1 até 8.
Para cada vez ou cada numero que contar será executado o código
que esta no "do" por isso no exemplo se repete 8 vezes a frase.
Ao contrario a variável %%a terá o valor do numero que estamos
contando.
Ex.

For /l %%a in (1,1,10) do (echo %%a)


Clique para expandir...
Aqui contara até 10 e retornará os números do 1 aos 10.
O %%a pode substituído por %%b ou %%ocaracterquequizermos

For /f %%a in ('type arquivo.txt') do (echo %%a)


Clique para expandir...
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.
Com o modificador /f podemos usar:
Delims especifica um grupo de delimitadores
Skip pula a quantidade de linhas que indicarmos
Tokens o texto extraído mostra as colunas que indicarmos
Vejamos exemplos:

For /f "Delims=" ('type arquivo.txt') do (echo %%a)


Clique para expandir...
Aqui escrevera o arquivo.txt por linhas, a diferença do código
anterior é que teríamos erros nas linhas do arquivo pois iriam ser
cortadas.

For /f "Skip=3" ('type arquivo.txt') do (echo %%a)


Clique para expandir...
Pula as primeiras 3 linhas do arquivo

For /f "Tokens=2,4" ('Tasklist') do (echo %%a)


Clique para expandir...
O Tasklist nos escrevera as colunas 2 e 4, ou seja o pid e o uso de
memória

For %%a in (a b c) do (echo %%a)


Clique para expandir...
Aqui nos escrevera as letras a b c, isso significa que passará pelo
"do" com a letra a na variável %%a depois passará de volta ao "do"
porem Agora a variável %%a valerá b e depois quando passe
novamente pelo "do" %%a será c.
No for não podemos salvar uma variável que muda, por isso no inicio
do arquivo escreveremos setlocal enabledelayedextension.
Isto habilitara a expansion de Variáveis retardada.
Desta maneira podemos salvar Variáveis no for, não da forma
%Variável% e sim !Variável!
Ex.:

Set n=0
For /f "Skip=4 Tokens=1" %%a in ('type arquivo.txt') do (set /a n=!
n!+1)
Clique para expandir...
Para saber quantas vezes passaram pelo "do" as linhas do arquivo
ficará armazenadas na variável n o numero de linhas do arquivo.txt
Se quisermos colocar um for dentro de outro, não devemos usar as
mesmas Variáveis 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))


Clique para expandir...
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 ação vai ser executada em modo
background
-p(seguido do texto, sem parêntesis) se usa para colocar-se senha
no rar
-ep1 se usa para excluir todos os diretórios que contem nesse
arquivo
-df se usa para eliminar os arquivos depois da compressão
Ex:

Start Winrar.exe a -ep1 "\Documents and


Settings\Administrador\desktop\arquivoscomprimido.rar"
"\Documents and
Settings\Administrador\desktop\arquivoqueseracomprimido.*"
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"
Clique para expandir...
-ibck (Neste ultimo exemplo a senha seria a palavra casa e serão
eliminados os arquivos depois da compressão)

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
Clique para expandir...
(Neste ultimo exemplo descomprimiria usando a senha casa)

[todos os comandos do Winrar estão na pasta do programa, no


arquivo rar.txt]

21.modificar tamanho do console


Podemos modificar o tamanho do console desta maneira:

MODE CON: COLS="quantidadecolunas" LINES="quantidadelinhas"


Clique para expandir...
Em quantidade de colunas, colocamos a quantidade de colunas (sem
aspas) e em quantidade de linhas colocamos a quantidade de linhas
(sem aspas)
Ex.:

Mode con: cols=50 lines=25


Clique para expandir...
Ps.: o tamanho de uma célula é de 12 x 8 pixels, um quadrado seria
por exemplo:

mode con: cols=48 lines=32


Clique para expandir...
22.Ativar ou desativar firewall do Windows
Para Ativar

netsh firewall set opmode enable


Clique para expandir...
Para desativar

netsh firewall set opmode disable


Clique para expandir...
Netsh nos oferece varias opções para configuração de uma rede.
Para mais informação netsh/?

23.Tabelas
Modelos de Tabelas:

Modelo 1

“Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
Echo º º
Echo º º
Echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Clique para expandir...
Modelo 2

Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
Echo º º
Echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
Echo º º
Echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Clique para expandir...
Modelo 3
Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
Echo ±± ±±
Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
Echo ±± ±±
Echo ±± ±±
Echo ±± ±±
Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
Clique para expandir...
Modelo 4

Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
Echo º º º
echo ºÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͺ
echo º º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Clique para expandir...
24.Comandos de Rede
FTP
Iniciar o cliente FTP
IPCONFIG parâmetros
Mostrar as características de configuração de IP
/all -> mostra toda a informação de configuração
/release adaptador -> libera o ip do adaptador especificado
/renew adaptador -> renova o ip para o adaptador especificado
/flushdns -> purga o cachê de resolução de dns
/registerdns -> atualiza as conexões dhcp e volta a registrar os
nomes dns
/displaydns -> mostra o conteúdo do cachê de resolução dns
Netstat
Comando para verificar o estado atual da rede
Netstat -a Mostrar todos os pontos e conexões
Netstat -n Mostrar número de porta e caminhos
Netstat -r Mostrar a tabela de caminhos
Netstat -s Mostrar estatísticas por protocolo
Netstat -p tcp/udp Mostrar as conexões 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 Número de partições a enviar
ping -l tamanho tamanho do buffer
Telnet
Inicia uma sessão Telnet ao host especificado na porta
especificada.
se a porta for omitida se usa a 23 por default.
Tracert
Traçar 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 partições a
enviar colocamos os segundos de espera.
Ex:

Ping -n 1 localhost>nul
Clique para expandir...
Espera um segundo e “oculta” o texto que aparece ao executar ping
com o ">nul".

Ping -n 5 127.0.0.1>nul
Clique para expandir...
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 conexão 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
Clique para expandir...

Salvem como espera.bat em “C:\Windows\System32”


Para utilizar é muito simples, colocamos no nosso código:

Espera "quantidadedesegundos"
Clique para expandir...
---------------------------------------------------
------------------------

Bem galera! Isso é só!

Você também pode gostar