Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Tutorial Batch (Todos os niveis)


ϟIgorzin²
 Compartilhar

Posts Recomendados

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>_

 

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

 

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

 

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)

 

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=

 

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

 

Também se uma variável é um valor numérico podemos trabalhar com ela, por exemplo,

 

Set /a Variável=%random%*%random%

 

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,numerosdecaracteresquequeremosver%

 

No exemplo anterior seria 5,4 (nos mostraria somente fghi)

 

%original:~5,4%

 

Agora queremos mostrar a partir do c em diante

 

%original:~2%

 

Agora queremos mostrar os últimos 3 caracteres

 

%original:~-3%

 

Agora queremos mostrar tudo menos os últimos três caracteres

 

%original:~0,-3%

 

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

 

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

 

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)

 

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)

 

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

 

Ex.:

 

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

 

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.

)

 

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

 

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)

 

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)

 

Podemos verificar a existência de um arquivo no diretório

 

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

 

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)

 

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

 

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

 

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"

 

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

 

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)

 

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

 

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.

 

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

 

Os parâmetros mudam: b [%1], c [%2], d [%3], e [%4], f [%5]

 

Shift /2

 

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"

 

E para voltar velo fazemos:

 

Attrib -h "arquivo"

 

11.Redirecionadores

Para escrever um arquivo de texto que diga abc fazemos:

 

Echo abc > "caminhodoarquivotxt.txt"

 

Para Adicionar outra linha ao arquivo sem sobre escrever fazemos:

 

Echo def >> "caminhodoarquivotxt.txt"

 

Podemos também ocultar a saída de um comando com uma re-direção

Ex.:

 

Ping –n 1 localhost>nul

 

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"

 

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 ]

 

exemplo:

 

reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v "exemplo" /t reg_sz /d "C:\exemplo.bat"

 

12.2.Apagar chave do registro

 

Reg delete "chave" /v "nome da entrada" /f (executa sem pedir confirmação)

 

exemplo:

 

reg delete "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v "exemplo" /f

 

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"

 

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\CurrentVersion\Run"

 

Consultarmos a chave "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"

 

12.4.Exportar arquivo .reg de uma chave

 

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

 

Ex.:

 

reg export "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" "%homedrive%%homepath%\desktop\HKLMRun.reg"

 

No seu desktop será criado o arquivo HKLMRun.reg com os valores da chave "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"

 

12.5.Importar um arquivo .reg ao registro

 

Reg import “arquivo.reg”

 

Ex.:

 

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

 

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

 

12.6.Comparar duas chaves do registro

 

Reg compare "chave1" “chave2”

 

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\CurrentVersion\Run" "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"

 

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

 

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%

 

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%

 

Para permitir o acesso a um usuário neste caso nosso usuário atual

 

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

 

Para denegar o acesso a todos os usuários

 

Cacls "diretórioarquivo" /e /d todos

 

Para permitir o acesso a todos os usuários

 

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

 

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

 

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

 

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

 

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)

 

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)

 

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)

 

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)

 

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)

 

Pula as primeiras 3 linhas do arquivo

 

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

 

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)

 

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)

 

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))

 

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"

 

-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

 

(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"

 

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

 

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

 

mode con: cols=48 lines=32

 

22.Ativar ou desativar firewall do Windows

Para Ativar

 

netsh firewall set opmode enable

 

Para desativar

 

netsh firewall set opmode disable

 

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 ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

 

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 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

 

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 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

 

 

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

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

 

Espera "quantidadedesegundos"

 

---------------------------------------------------------------------------

 

Bem galera! Isso é só!

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.