Tudo sobre batch: Apostilas, programas, dicas e tutoriais.
Mostrando postagens com marcador Aprendendo. Mostrar todas as postagens
Mostrando postagens com marcador Aprendendo. Mostrar todas as postagens

7 de jan. de 2013

AUTOR:Osmar do fórum BatchSatti
Introdução

Antes de tudo, indicar o porquê os processos são chamados batch. A razão por ele se chamar bat é porque no ms-dos requere-se como máximo três letras na extensão e por tanto os arquivos tem a extensão .bat



O que se pode fazer com eles?


Pode fazer de forma automatizada tudo aquilo que se pode fazer no console do ms-dos.


Como faça um arquivo bat?


Coloque em texto. Apenas decidir onde colocar, pode colocá-lo no bloco de notas ou algum editor ascii como o Masbat.


Ao guardá-los devem ter a notação de nomes próprios do ms-dos. Este nome com no máximo 8 letras (espaço e \ não são permitidos) logo um ponto e a extensão que neste caso é obrigatoriamente bat.



Como posso selecionar vários arquivos;


Para ele tem que se levar em conta os nomes dos arquivos, devem cumprir a notação do ms-dos (8 letras sem espaço como máximo, logo um ponto e três letras como máximo da extensão. Pode se utilizar os comandos;


CODE

*Equivale a vários caracteres.
?Equivale a apenas um caracter.

Exemplos:


comando *.doc -> selecionar todos os arquivos que tenham a extensão doc.

comando a*.doc -> selecionar todos os arquivos que comecem por a e tenha a extensão doc.
comando a*b.doc -> selecionar todos os arquivos que comecem por a, acabem por b e tenham a extensão doc.
comando *mao*.doc -> selecionar todos os arquivos que contenham 'mao' e tenham a extensão doc.
comando c?mao.doc -> selecionar todos os arquivos que contenham 'c', logo um carater qualquer e logo 'mao'. Deve ter tambem a extensão doc.
comando c?b*.* -> selecionar todos os arquivos que comecem por 'c', tenham um caracter qualquer, logo um b e qualquer extensão.
comando *.b?t -> selecionar todos os arquivos que tenham a extensão que comece por b, logo um caracter qualquer e logo um t. 



Quem são as trajetórias e os patchs;


A trajetória é o nome completo de um arquivo e indica a situação exata de um arquivo e seu nome.


Se digo que o arquivo se chama arquivo.txt indico seu nome, mas nada mais. Se supoe que se encontra no diretório atual.


Se digo c:\arquivo.txt indico que o arquivo que me interesse se chama arquivo.txt e se encontra no diretório ráiz de C.


Dado que no ms-dos nao se admite nomes grandes ( mais de 8 letras ) nem espaço, quando quero utilizar o nome do windows em ms-dos devo saber que este será reconvertido em seu nome curto. Este se obtem os seis primeiros carácteres válidos do nome, logo o sinal ~ (alt 126) e logo um número.



Que comandos podemos utilizar;


Comandos;


Aqui estão alguns comandos utilizados em batch.


ECHO [mensagem ou variável]


Escreve na tela.


ECHO OFF


Desativa as informações e confirmações feitas pelo sistema. Como "C:>", "Tem certeza que deseja fazer tal?"....


ECHO ON


Ativa as informações e confirmações do sistema.


ECHO.


Pula uma linha


SET variavel=valor


Cria ou modifica uma variável (espaço reservado temporariamente na memória RAM para guardar algumas informações númericas, de caractéres, positivo/negativo entre outros. Não podem ter acento e devem começar com letra). Para chamar a variável posteriormente basta coloca-la entre "%".


Por exemplo:



SET nome=Storm

ECHO O nome dele é %nome%

:nomedolink


Nomeia um ponto do arquivo de lote permitindo avançar ou voltar a execução apartir daquele ponto.


CLS


Esse comando limpa toda a tela. CLear Screen.


@[Comando]


Desativa as informações e confirmações feitas pelo sistema apenas para esta linha.


CODE

IF [condição] (
[ação]
) ELSE (
[ação2]
)


Esse é um comando condicional. "Se condição faça ação, senão faça ação2".


Por exemplo:


CODE

@ECHO OFF 
SET nome=Storm
IF "%nome%"=="Storm" (
ECHO Ola Storm!
) ELSE (
ECHO Ola %nome%!

)


GOTO [ponto]


Avança ou volta a execução para um ponto do arquivo de lote.


FOR /L %%variavel IN (inicio,incremento,fim) DO comando [parâmetro]


Repete um comando varias vezes fazendo incrementações até o fim ser atingido.


/L, é uma opção do comando FOR que faz as incrementações.

%%variavel, é o nome da variável que vai ser incrementada.
inicio, é o valor de inicio da variável que será incrementada.
incremento, número que será somado a cada incrementação.
fim, a repetição irá acabar quando o valor da variável atingir este valor.
comando, um comando que será repetido.
[parâmetro], o parâmetro do comando que será repetido.


Por exemplo:


CODE

@ECHO OFF
FOR /L %%a IN (1,1,5) DO ECHO O valor de A é %%a



PAUSE


Faz uma pausa e só volta quando o usuário apertar alguma tecla do teclado.


REM [comentário]


Este comando não faz absolutamente nada. Ele é utilizado para inserir comentarios nos arquivos.


CODE

PROMPT ->Serve para abrir o prompt do msdos. O mais habitual é $p$g que corresponde a;

$p = mostrar trajeto atual

$g = mostrar o separador >
$l = mostrar o separador <
$b = mostrar o separador |
$q = mostrar o separador =
$$ = mostrar o sinal $
$t = mostrar a hora 
$d = mostrar a data
$v = mostrar a versão do sistema
$n = mostrar unidade atual
$h = retroceso. Apaga o caracter previo
$e = esc. Mostra o sinal corresponde a asci 27


Por isso se colocarmos prompt $p$g o cursor mostra a tragetória de onde estamos e logo o separador. É possível o texto ( por exemplo prompt Meu_nome $p$g 


DATE

Ver/por a data do sistema

TIME

Ver/por a hora do sistema

VER[/font]

Versão do sistema
[font=Verdana]VOL unidade
Volume da unidade especificada

MEM parametros

Mostra a memoria usada e livre no sistema
/p -> mostra por programas
/d -> por programas econtroladores
/c -> classifica por tamanho


Comandos de manejos de arquivos 


COPY origem destino 

Serve para copiar arquivos de um lugar a outro. A origem deve ser um trajeto completo de onde estão os arquivos a copiar. Se se omite se entende no diretório atual.

O destino deve ser uma trajetória completa de onde desejar o/os arquivo(s)

copy meuarquivo.txt c:\ (copiá-lo do diretorio raíz de C)
copy meuarquivo.txt c:\meuarq.txt (copiá-lo e poder mudar o nome a meuarq.txt)
copy *.txt a:\ (copiar todos os arquivos que tenham a extensão txt a unidade A) 
copy *.txt c:\meusdo~1 (copiar todos os que tenham a extensão txt ao diretório Meus documentos ( cujo o nome curto é meusdoc~1).


DEL arquivo(s)


Apagar arquivos selecionados 


del lol.txt (apaga o arquivo lol.txt no diretório atual)

del c:\lol.txt (apaga o arquivo lol.txt que se encontra no c:\)
del arquiv~1\*.*(apaga os arquivos que se encontram no diretório 'Arquivos de programa' cujo nome curto é arquiv~1( não se apaga as subpastas)

DELTREE arquivo(s) -y


Apaga a raíz especificada ( se é um arquivo coloca o arquivo, se é uma pasta coloca a pasta com todas as subpastas que incluam).

Com o parametro -y não pergunta cada vez
Este comando na realidade não é um comando sim uma utilidade incluída no ms-dos.

DIR trajeto 


Mostra uma lista do conteúdo do diretório especificado no trajeto. Se não especificado nada, se entende o atual.

Se coloca como parametro /W mostra uma lista resumida
Se coloca como parametro /P mostra uma lista utilizando o filtro more.


ATTRIB arquivo(s)-> Mostra os arquivos dos diretórios indicados e nesse caso permite mudá-los.


os atributos são:


H -> oculto. Se ativa com +h e desativa com -h

R -> Leitura. Apenas leitura com +r, normal com -r
S -> Sistema. Se ativa com +s e desativa com -s
A -> Modificado. Para copias de segurança incrementadas. +a indica modificado e -a indica não modificado.
Attrib arquivostorm.txt (mostrar os atributos do arquivostorm.txt)
attrib *.exe +r +r +s (coloca todos os arquivos com extensão exe como ocultos, do sistema e a apenas lê)

RENAME o REN nome1 nome2

Mudar o nome do arquivo
Ren nome1.txt nome2.txt

TYPE arquiivo

Mostra por pasta o conteúdo do arquivo;
type nomedoarquivo.txt


* Todos aqui listados são comandos de MS-DOS que foram criados especificamente para arquivos de lote. Se você precisar de mais detalhes sobre cada um deles basta digitar no MS-DOS (ou no prompt de comando do Windows) [comando]/? Todos comandos de MS-DOS também entram nesta lista incluindo chamadas de outros programas para este sistema.


Comandos para programação


EDIT arquivo


Editor de textos utilizado para editar scripts e arquivos de texto.


DEBUG arquivo parametros de arquivo

Inicia o desassembler com o programa indicado que se colocam por parametros.

CHOICEtexto opções


Se utiliza em programas bat para dar elegir a um usuario entre um conjunto de opções

A resposta se devolve mediante a variável errorlevel
choice Eleja uma opçao snc 

CODE

if errorlevel 1 goto ...
if errorlevel 2 goto ...
if errorlevel 3 goto ...

Este exemplo mostra a lateral "eleja uma opção e da a elejer s (sim), n (não) o C (continuar) por exemplo as tres seguintes linhas especificam aonde deve sair o fluxo do programa seguido da tecla pulsada. 


Variáveis


A condição DEFINED verifica se uma variável já foi definida. Por exemplo, se a variável "x" estiver definida, então o resultado será positivo, senão negativo.

Veja como ficaria:

CODE

@ECHO OFF
IF DEFINED x ( ECHO Positivo ) ELSE ( ECHO Negativo )



Arquivos


A condição EXIST verifica se existe algum arquivo. Por exemplo, se existir o arquivo "exemplo.bat" o resultado será positivo, senão negativo.

Veja como ficaria:

CODE

@ECHO OFF
IF EXIST exemplo.bat ( ECHO Positivo ) ELSE ( ECHO Negativo )


Esta condição não para por aí. No sistema MS-DOS, você pode fazer uma "pesquisa" na pasta em que está por um arquivo digitando parte dele. Você usa "*" para indicar a(s) parte(s) que você não sabe. Por exemplo, se existir algum arquivo com a extensão ".bat" na pasta atual o resultado será positivo, senão negativo.

Veja como ficaria:

CODE

@ECHO OFF
IF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo )


X é igual a 6?


@ECHO OFF

CLS
SET X=6
IF "%X%" == "6" GOTO ok
ECHO X não é igual a 6, X é igua a %X%
GOTO saida
k
ECHO X é igual a 6
:saida


Na primeira linha. O "@" indica que não é para aparecer o comando que segue, no caso, "ECHO" (Comando que escreve na janela). Nesta linha, eu estou grosseiramente mandando o MS-DOS calar a boca (não falar nada sem eu mandar), pois se ECHO faz o computador "falar", ECHO OFF faz o computador "desligar a boca" e com o @ no começo da linha, ele nem vai informar ao usuário que está parando de falar.

Na segunda linha, o comando CLS faz o MS-DOS apagar toda a tela.
Na terceira linha, como já foi explicado, faz a variável X=6.
Na quarta linha, é uma linha condicional. Se "X" for igual à 6 vá para "ok".
Na quinta linha, é óbivio que X não vai ser igual a 6, então o MS-DOS vai "falar" X não é igual a 6, X é igua a [valor de x].
Na sexta linha, ele irá para o ponto "saida" porque o resto é feito se X for igual a 6.
Na sétima linha, está sendo definido o ponto "ok", aquele ponto citado na quarta linha.
Na oitava linha, X será igua a 6, então o MS-DOS vai dizer X é igual a 6.
E na nona linha, é definido o ponto-final do processamento. Que é chamado na sexta linha, nada mais que isso, então o MS-DOS entende que o batch concluiu.

Faça o teste


1. Abra o Bloco de notas do Windows;

2. Copie o exemplo acima e cole nele;
3. Salva-o como exemplo.bat;
4. Dê dois-clicks nele observe o que acontecerá;
5. Agora experimente modificar a terceira linha por SET X=qualquer coisa;
6. Execute e veja o que acontece.


Mensagem de acordo com a idade


CODE

@ECHO OFF
SET idade=19
IF %idade% LSS 10 (
ECHO Bom dia rapaz!
ECHO.
ECHO Você não vai pra faculdade?
) ELSE (
IF %idade% LSS 18 (
ECHO Bom dia rapaz!
ECHO.
ECHO Você não vai pra faculdade?
) ELSE (
IF %idade% LEQ 64 (
ECHO Bom dia!
ECHO.
ECHO Você não vai trabalhar hoje?
) ELSE (
ECHO Bom dia!
ECHO.
ECHO Tudo bem?
)
)
)


Esta é uma forma mais avançada de usar o comando condicional IF. Isso é quase idêntico a Algoritmo. Ele avalia a variável %idade%. Se %idade% for menor que 10 então escreva tal; Senão, se %idade% for menor que 18 então escreva tal; Senão se %idade% for menor ou igual a 64 então escreva tal; Senão obviamente %idade% é maior que 64, então imprima tal.


Faça o teste


1. Abra o Bloco de notas do Windows;

2. Copie o exemplo acima e cole nele
3. Salva-o como exemplo2.bat;
4. Dê dois-clicks nele observe o que acontecerá;
5. Agora experimente modificar a segunda linha por SET idade=n (troque n por algum número);
6. Execute e veja o que acontece.

Programando;


Existe uma infinidade de comandos, como mostrei acima, e só usar a imaginação e podemos programar uma imensidão de finalidades, basta usar a criatividade e alguns comandos, para fechar esse tutorial, vou abordar alguns códigos feito por mim.



Exemplo 1 (Básico)


-fazer um loop que pegue todos os nomes dos diretorios

-dentro de cada diretorio, renomear todos os arquivos com a extensão .txt para .zip

CODE

@echo off
rem *.txt *.zip
@exit



Exemplo 2 (Intermediário/Avançado)

CODE

@echo off


cls


Echo Batch feito por Storm

Echo .
Echo .
Echo Começar o programa?
pause
Echo .
Echo .
Echo .
Echo Este programa cria uma chave de inicializaçao de um arquivo no windows através do menu.
Echo .
Echo .
Echo [1] Deseja que esse arquivo se inicie no seu proximo logon?
Echo [2] Deseja sair do programa?

Set /p choice=Digite o numero correspodente a sua opçao:


if "%choice%"=="2" goto op2

if "%choice%"=="1" goto op1

rem Bloco de declaraçao dos gotos


p1 reg add "hklm\Software\Microsoft\Windows\CurrentVersion\Ru n" /v teste2 /t REG_SZ /d c:\path\batstorm.bat&goto proximo


p2 exit


roximo

Echo .
Echo .
Echo Chave criada com sucesso.
Echo .
Echo .
Echo Agora mostrarei a chamada de um outro arquivo bat sem a interrupção do arquivo.

Echo [1] Deseja chamar o arquivo batstorm.bat?

Echo [2] Deseja sair do programa?

Set /p choice=Digite o numero correspondente a sua opçao:


if "%choice%"=="2" goto op3

if "%choice%"=="1" goto op4

p3 call batstorm.bat&goto proximo2


p4 exit


AUTOR:Osmar do fórum BatchSatti
Introdução

Antes de tudo, indicar o porquê os processos são chamados batch. A razão por ele se chamar bat é porque no ms-dos requere-se como máximo três letras na extensão e por tanto os arquivos tem a extensão .bat



O que se pode fazer com eles?


Pode fazer de forma automatizada tudo aquilo que se pode fazer no console do ms-dos.


Como faça um arquivo bat?


Coloque em texto. Apenas decidir onde colocar, pode colocá-lo no bloco de notas ou algum editor ascii como o Masbat.


Ao guardá-los devem ter a notação de nomes próprios do ms-dos. Este nome com no máximo 8 letras (espaço e \ não são permitidos) logo um ponto e a extensão que neste caso é obrigatoriamente bat.



Como posso selecionar vários arquivos;


Para ele tem que se levar em conta os nomes dos arquivos, devem cumprir a notação do ms-dos (8 letras sem espaço como máximo, logo um ponto e três letras como máximo da extensão. Pode se utilizar os comandos;


CODE

*Equivale a vários caracteres.
?Equivale a apenas um caracter.

Exemplos:


comando *.doc -> selecionar todos os arquivos que tenham a extensão doc.

comando a*.doc -> selecionar todos os arquivos que comecem por a e tenha a extensão doc.
comando a*b.doc -> selecionar todos os arquivos que comecem por a, acabem por b e tenham a extensão doc.
comando *mao*.doc -> selecionar todos os arquivos que contenham 'mao' e tenham a extensão doc.
comando c?mao.doc -> selecionar todos os arquivos que contenham 'c', logo um carater qualquer e logo 'mao'. Deve ter tambem a extensão doc.
comando c?b*.* -> selecionar todos os arquivos que comecem por 'c', tenham um caracter qualquer, logo um b e qualquer extensão.
comando *.b?t -> selecionar todos os arquivos que tenham a extensão que comece por b, logo um caracter qualquer e logo um t. 



Quem são as trajetórias e os patchs;


A trajetória é o nome completo de um arquivo e indica a situação exata de um arquivo e seu nome.


Se digo que o arquivo se chama arquivo.txt indico seu nome, mas nada mais. Se supoe que se encontra no diretório atual.


Se digo c:\arquivo.txt indico que o arquivo que me interesse se chama arquivo.txt e se encontra no diretório ráiz de C.


Dado que no ms-dos nao se admite nomes grandes ( mais de 8 letras ) nem espaço, quando quero utilizar o nome do windows em ms-dos devo saber que este será reconvertido em seu nome curto. Este se obtem os seis primeiros carácteres válidos do nome, logo o sinal ~ (alt 126) e logo um número.



Que comandos podemos utilizar;


Comandos;


Aqui estão alguns comandos utilizados em batch.


ECHO [mensagem ou variável]


Escreve na tela.


ECHO OFF


Desativa as informações e confirmações feitas pelo sistema. Como "C:>", "Tem certeza que deseja fazer tal?"....


ECHO ON


Ativa as informações e confirmações do sistema.


ECHO.


Pula uma linha


SET variavel=valor


Cria ou modifica uma variável (espaço reservado temporariamente na memória RAM para guardar algumas informações númericas, de caractéres, positivo/negativo entre outros. Não podem ter acento e devem começar com letra). Para chamar a variável posteriormente basta coloca-la entre "%".


Por exemplo:



SET nome=Storm

ECHO O nome dele é %nome%

:nomedolink


Nomeia um ponto do arquivo de lote permitindo avançar ou voltar a execução apartir daquele ponto.


CLS


Esse comando limpa toda a tela. CLear Screen.


@[Comando]


Desativa as informações e confirmações feitas pelo sistema apenas para esta linha.


CODE

IF [condição] (
[ação]
) ELSE (
[ação2]
)


Esse é um comando condicional. "Se condição faça ação, senão faça ação2".


Por exemplo:


CODE

@ECHO OFF 
SET nome=Storm
IF "%nome%"=="Storm" (
ECHO Ola Storm!
) ELSE (
ECHO Ola %nome%!

)


GOTO [ponto]


Avança ou volta a execução para um ponto do arquivo de lote.


FOR /L %%variavel IN (inicio,incremento,fim) DO comando [parâmetro]


Repete um comando varias vezes fazendo incrementações até o fim ser atingido.


/L, é uma opção do comando FOR que faz as incrementações.

%%variavel, é o nome da variável que vai ser incrementada.
inicio, é o valor de inicio da variável que será incrementada.
incremento, número que será somado a cada incrementação.
fim, a repetição irá acabar quando o valor da variável atingir este valor.
comando, um comando que será repetido.
[parâmetro], o parâmetro do comando que será repetido.


Por exemplo:


CODE

@ECHO OFF
FOR /L %%a IN (1,1,5) DO ECHO O valor de A é %%a



PAUSE


Faz uma pausa e só volta quando o usuário apertar alguma tecla do teclado.


REM [comentário]


Este comando não faz absolutamente nada. Ele é utilizado para inserir comentarios nos arquivos.


CODE

PROMPT ->Serve para abrir o prompt do msdos. O mais habitual é $p$g que corresponde a;

$p = mostrar trajeto atual

$g = mostrar o separador >
$l = mostrar o separador <
$b = mostrar o separador |
$q = mostrar o separador =
$$ = mostrar o sinal $
$t = mostrar a hora 
$d = mostrar a data
$v = mostrar a versão do sistema
$n = mostrar unidade atual
$h = retroceso. Apaga o caracter previo
$e = esc. Mostra o sinal corresponde a asci 27


Por isso se colocarmos prompt $p$g o cursor mostra a tragetória de onde estamos e logo o separador. É possível o texto ( por exemplo prompt Meu_nome $p$g 


DATE

Ver/por a data do sistema

TIME

Ver/por a hora do sistema

VER[/font]

Versão do sistema
[font=Verdana]VOL unidade
Volume da unidade especificada

MEM parametros

Mostra a memoria usada e livre no sistema
/p -> mostra por programas
/d -> por programas econtroladores
/c -> classifica por tamanho


Comandos de manejos de arquivos 


COPY origem destino 

Serve para copiar arquivos de um lugar a outro. A origem deve ser um trajeto completo de onde estão os arquivos a copiar. Se se omite se entende no diretório atual.

O destino deve ser uma trajetória completa de onde desejar o/os arquivo(s)

copy meuarquivo.txt c:\ (copiá-lo do diretorio raíz de C)
copy meuarquivo.txt c:\meuarq.txt (copiá-lo e poder mudar o nome a meuarq.txt)
copy *.txt a:\ (copiar todos os arquivos que tenham a extensão txt a unidade A) 
copy *.txt c:\meusdo~1 (copiar todos os que tenham a extensão txt ao diretório Meus documentos ( cujo o nome curto é meusdoc~1).


DEL arquivo(s)


Apagar arquivos selecionados 


del lol.txt (apaga o arquivo lol.txt no diretório atual)

del c:\lol.txt (apaga o arquivo lol.txt que se encontra no c:\)
del arquiv~1\*.*(apaga os arquivos que se encontram no diretório 'Arquivos de programa' cujo nome curto é arquiv~1( não se apaga as subpastas)

DELTREE arquivo(s) -y


Apaga a raíz especificada ( se é um arquivo coloca o arquivo, se é uma pasta coloca a pasta com todas as subpastas que incluam).

Com o parametro -y não pergunta cada vez
Este comando na realidade não é um comando sim uma utilidade incluída no ms-dos.

DIR trajeto 


Mostra uma lista do conteúdo do diretório especificado no trajeto. Se não especificado nada, se entende o atual.

Se coloca como parametro /W mostra uma lista resumida
Se coloca como parametro /P mostra uma lista utilizando o filtro more.


ATTRIB arquivo(s)-> Mostra os arquivos dos diretórios indicados e nesse caso permite mudá-los.


os atributos são:


H -> oculto. Se ativa com +h e desativa com -h

R -> Leitura. Apenas leitura com +r, normal com -r
S -> Sistema. Se ativa com +s e desativa com -s
A -> Modificado. Para copias de segurança incrementadas. +a indica modificado e -a indica não modificado.
Attrib arquivostorm.txt (mostrar os atributos do arquivostorm.txt)
attrib *.exe +r +r +s (coloca todos os arquivos com extensão exe como ocultos, do sistema e a apenas lê)

RENAME o REN nome1 nome2

Mudar o nome do arquivo
Ren nome1.txt nome2.txt

TYPE arquiivo

Mostra por pasta o conteúdo do arquivo;
type nomedoarquivo.txt


* Todos aqui listados são comandos de MS-DOS que foram criados especificamente para arquivos de lote. Se você precisar de mais detalhes sobre cada um deles basta digitar no MS-DOS (ou no prompt de comando do Windows) [comando]/? Todos comandos de MS-DOS também entram nesta lista incluindo chamadas de outros programas para este sistema.


Comandos para programação


EDIT arquivo


Editor de textos utilizado para editar scripts e arquivos de texto.


DEBUG arquivo parametros de arquivo

Inicia o desassembler com o programa indicado que se colocam por parametros.

CHOICEtexto opções


Se utiliza em programas bat para dar elegir a um usuario entre um conjunto de opções

A resposta se devolve mediante a variável errorlevel
choice Eleja uma opçao snc 

CODE

if errorlevel 1 goto ...
if errorlevel 2 goto ...
if errorlevel 3 goto ...

Este exemplo mostra a lateral "eleja uma opção e da a elejer s (sim), n (não) o C (continuar) por exemplo as tres seguintes linhas especificam aonde deve sair o fluxo do programa seguido da tecla pulsada. 


Variáveis


A condição DEFINED verifica se uma variável já foi definida. Por exemplo, se a variável "x" estiver definida, então o resultado será positivo, senão negativo.

Veja como ficaria:

CODE

@ECHO OFF
IF DEFINED x ( ECHO Positivo ) ELSE ( ECHO Negativo )



Arquivos


A condição EXIST verifica se existe algum arquivo. Por exemplo, se existir o arquivo "exemplo.bat" o resultado será positivo, senão negativo.

Veja como ficaria:

CODE

@ECHO OFF
IF EXIST exemplo.bat ( ECHO Positivo ) ELSE ( ECHO Negativo )


Esta condição não para por aí. No sistema MS-DOS, você pode fazer uma "pesquisa" na pasta em que está por um arquivo digitando parte dele. Você usa "*" para indicar a(s) parte(s) que você não sabe. Por exemplo, se existir algum arquivo com a extensão ".bat" na pasta atual o resultado será positivo, senão negativo.

Veja como ficaria:

CODE

@ECHO OFF
IF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo )


X é igual a 6?


@ECHO OFF

CLS
SET X=6
IF "%X%" == "6" GOTO ok
ECHO X não é igual a 6, X é igua a %X%
GOTO saida
k
ECHO X é igual a 6
:saida


Na primeira linha. O "@" indica que não é para aparecer o comando que segue, no caso, "ECHO" (Comando que escreve na janela). Nesta linha, eu estou grosseiramente mandando o MS-DOS calar a boca (não falar nada sem eu mandar), pois se ECHO faz o computador "falar", ECHO OFF faz o computador "desligar a boca" e com o @ no começo da linha, ele nem vai informar ao usuário que está parando de falar.

Na segunda linha, o comando CLS faz o MS-DOS apagar toda a tela.
Na terceira linha, como já foi explicado, faz a variável X=6.
Na quarta linha, é uma linha condicional. Se "X" for igual à 6 vá para "ok".
Na quinta linha, é óbivio que X não vai ser igual a 6, então o MS-DOS vai "falar" X não é igual a 6, X é igua a [valor de x].
Na sexta linha, ele irá para o ponto "saida" porque o resto é feito se X for igual a 6.
Na sétima linha, está sendo definido o ponto "ok", aquele ponto citado na quarta linha.
Na oitava linha, X será igua a 6, então o MS-DOS vai dizer X é igual a 6.
E na nona linha, é definido o ponto-final do processamento. Que é chamado na sexta linha, nada mais que isso, então o MS-DOS entende que o batch concluiu.

Faça o teste


1. Abra o Bloco de notas do Windows;

2. Copie o exemplo acima e cole nele;
3. Salva-o como exemplo.bat;
4. Dê dois-clicks nele observe o que acontecerá;
5. Agora experimente modificar a terceira linha por SET X=qualquer coisa;
6. Execute e veja o que acontece.


Mensagem de acordo com a idade


CODE

@ECHO OFF
SET idade=19
IF %idade% LSS 10 (
ECHO Bom dia rapaz!
ECHO.
ECHO Você não vai pra faculdade?
) ELSE (
IF %idade% LSS 18 (
ECHO Bom dia rapaz!
ECHO.
ECHO Você não vai pra faculdade?
) ELSE (
IF %idade% LEQ 64 (
ECHO Bom dia!
ECHO.
ECHO Você não vai trabalhar hoje?
) ELSE (
ECHO Bom dia!
ECHO.
ECHO Tudo bem?
)
)
)


Esta é uma forma mais avançada de usar o comando condicional IF. Isso é quase idêntico a Algoritmo. Ele avalia a variável %idade%. Se %idade% for menor que 10 então escreva tal; Senão, se %idade% for menor que 18 então escreva tal; Senão se %idade% for menor ou igual a 64 então escreva tal; Senão obviamente %idade% é maior que 64, então imprima tal.


Faça o teste


1. Abra o Bloco de notas do Windows;

2. Copie o exemplo acima e cole nele
3. Salva-o como exemplo2.bat;
4. Dê dois-clicks nele observe o que acontecerá;
5. Agora experimente modificar a segunda linha por SET idade=n (troque n por algum número);
6. Execute e veja o que acontece.

Programando;


Existe uma infinidade de comandos, como mostrei acima, e só usar a imaginação e podemos programar uma imensidão de finalidades, basta usar a criatividade e alguns comandos, para fechar esse tutorial, vou abordar alguns códigos feito por mim.



Exemplo 1 (Básico)


-fazer um loop que pegue todos os nomes dos diretorios

-dentro de cada diretorio, renomear todos os arquivos com a extensão .txt para .zip

CODE

@echo off
rem *.txt *.zip
@exit



Exemplo 2 (Intermediário/Avançado)

CODE

@echo off


cls


Echo Batch feito por Storm

Echo .
Echo .
Echo Começar o programa?
pause
Echo .
Echo .
Echo .
Echo Este programa cria uma chave de inicializaçao de um arquivo no windows através do menu.
Echo .
Echo .
Echo [1] Deseja que esse arquivo se inicie no seu proximo logon?
Echo [2] Deseja sair do programa?

Set /p choice=Digite o numero correspodente a sua opçao:


if "%choice%"=="2" goto op2

if "%choice%"=="1" goto op1

rem Bloco de declaraçao dos gotos


p1 reg add "hklm\Software\Microsoft\Windows\CurrentVersion\Ru n" /v teste2 /t REG_SZ /d c:\path\batstorm.bat&goto proximo


p2 exit


roximo

Echo .
Echo .
Echo Chave criada com sucesso.
Echo .
Echo .
Echo Agora mostrarei a chamada de um outro arquivo bat sem a interrupção do arquivo.

Echo [1] Deseja chamar o arquivo batstorm.bat?

Echo [2] Deseja sair do programa?

Set /p choice=Digite o numero correspondente a sua opçao:


if "%choice%"=="2" goto op3

if "%choice%"=="1" goto op4

p3 call batstorm.bat&goto proximo2


p4 exit


20 de dez. de 2012

Autor: Hmenon do fórum Batch Satti

Bom fiz esse tópico para facilitar a vida de quem ainda tem problema com o comando "for",Para ser sincero eu também não sabia usar direito ele ate umas duas semanas atras, mais ai eu desvendei o mistério e irei compartilhar a formula secreta com vocês,bom o grande truque quando vai se aprender um comando tão complexo quanto o for está na aula experimental isso é você vendo com os seus próprios olhos o que cada complemento faz.

Obs -Usarei exemplos daqui do forum no tutorial e não estranhem se aparecer uma frase idêntica a do boss pois não da pra simplificar mais, então vamos começar.

base do comando isso é:

CÓDIGO:
For "complemento" %%variavel in (conjunto) do (ação sobre o conjunto)


Exemplos básicos desse comando

CÓDIGO:
for %%a in (Pasta1 Pasta2 Pasta3) do (md %%a)


CÓDIGO:
for %%b in (notepad.exe msnmsgr.exe ) do (taskkill -f -im %%b)


CÓDIGO:
for %%c in (File.txt File2.txt) do (del /s /f /q %%c)


Antes que você tenha essa duvida (Não importa a varável %%a %%b %%c tudo vai dar no mesmo)

Esses exemplos foi só pra dar uma pequena amostra do que este comando e capaz mais isso não e nem o começo agora vamos ver os complementos para utilização do "for".


> Opções para serem utilizadas antes dos "complementos"
[/L] - Serve para especificar um loop "for /l %%a in (1,1,100) do (echo %%a)"Exemplos + Explicação
[/D] - Serve para listar diretórios "for /d %%a in (*) do (echo %%a)" -------->Exemplos + Explicação
[/R] - E um Incremento para a opção '/d' "for /d /r %%a in (*) do (echo %%a)"Exemplos + Explicação 
[/F] - Serve como um ultilitario avançado de textos "tem muitos exemplos"

> Opções no "Conjunto" 
[""] - Especifica uma cadeia de caracteres "for /f "tokens=*" %%a in ("%Date%") do (echo %%a)" 
[' '] - Especifica um comando "for /f "tokens=*" %%a in ('type Arquvio.txt') do (echo %%a)" 
[ ] - Especifica conjunto de arquivos "for %%a in (Ola.txt Final.txt) do (del /s /f /q %%a)" 

> Complementos na opção /f 

Atenção ! Esses comandos so funcionam se estiverem acompanhados da opção '/F' & Antes de ver os "complementos" (goto teste)

[tokens] Limita visualização de camadas (goto tokens)
[delims] Especifica o caracter delimitador (goto Delims)
[skip] Especifica a quantidade de linhas para serem puladas (goto Skip)
[eol] Especifica o caractere para ser ignorado... (goto eol)
[usebackq] Muda a forma de se interpretar o conjunto (goto userbackq)
goto Sets

:teste
bom e meio dificil explicar esses complementos mais para melhor entendimento vamos precisar disso

CÓDIGO:
Linha1 Parte1 Teste1
Linha2 Parte2 Teste2
Linha3 Parte3 Teste3
Cole dentro do bloco de notas e salve como "Arquivo.txt"
obs - Quando tiver a hashtag #PodeUsar esta se referindo ao "Arquivo.txt" acima
goto:eof

:tokens
Veja você mesmo o uso desse comando
#PodeUsar

CÓDIGO:
for /f "Tokens=1" %%a in (Arquivo.txt) do (echo %%a)

O resultado disso seria

CÓDIGO:
Linha1
Linha2
Linha3

e se colocarmos

CÓDIGO:
for /f "Tokens=2" %%a in (Arquivo.txt) do (echo %%a)

o resultado seria

CÓDIGO:
Parte1
Parte2
Parte3

para que vejamos todo o conteudo do arquivo ultilizamos o caractere '*'

CÓDIGO:
for /f "Tokens=*" %%a in (Arquivo.txt) do (echo %%a)

bom podemos fazer variações na ordem de como se visualizara.

CÓDIGO:
for /f "Tokens=1,2" %%a in (Arquivo.txt) do (echo %%a %%b)
Dai isso resultaria em
CÓDIGO:
Linha1 Parte1
Linha2 Parte2
Linha3 Parte3
Percebam que no (conjunto de ação) eu coloquei "%%a" e "%%b" pois se ficasse só o "%%a" não apareceria a segunda coluna de linhas, coloquei o "%%b" por que o "B" e o numero afrente do "A", tipo se a variável fosse "%%1" ficaria "%%1" "%%2".
Poderíamos colocar

CÓDIGO:
for /f "Tokens=1,2,3" %%a in (Arquivo.txt) do (echo %%b %%a %%c)

isso acarretaria em

CÓDIGO:
Parte1 Linha1 Teste1
Parte2 Linha2 Teste2
Parte3 Linha3 Teste3
Também da pra encurtar o processo tipo você quer colocar o "tokens" de 1 a 9 envez de colocar 1,2,3... vc pode usar da seguinte maneira
CÓDIGO:
for /f "tokens=1-9" %%a in (Arquivo.txt) do( echo %%a %%b %%c ...)
então acho que já da pra sacar pra que serve este complemento né ?
goto:eof

:delims
ele especifica o caractere delimitador (entre as palavras)
exemplo:
você tem o seguinte código chamado "teste.txt"

CÓDIGO:
Linha1-Parte1-Teste1
Linha2-Parte2-Teste2
Linha3-Parte3-Teste3
E quer separar cada camada, se usar só o "tokens" não ira pegar simplesmente pelo fato de as palavras estarem uma em contato com a outra tipo você colocaria
CÓDIGO:
for /f "tokens=1,2,3" %%a in (teste.txt) do (echo %%c %%b %%a)
Iria aparecer a mesma coisa do código original,agora usando o "delims" tipo isso aqui
CÓDIGO:
for /f "tokens=1,2,3 delims=-" %%a in (Arquivo.txt) do (echo %%c %%b %%a)
acarretaria em
CÓDIGO:
Teste1 Parte1 Linha1
Teste2 Parte2 Linha2
Teste3 Parte3 Linha3
Outro exemplo que acho melhor ainda de se entender e o da data olhem
CÓDIGO:
for /f "tokens=1,2,3 delims=/" %%a in ("%date%") do (echo Ano - %%c Mes - %%b Dia - %%a)
O resultado disso seria
CÓDIGO:
Ano - 2012 Mes - 08 Dia - 10
Um detalhe importante de ser ressaltado e que o caractere delims não foi igual ao do exemplo passado eu usei o '/' por que na data ele é utilizado para separar dia més e ano '10/08/2012'
goto:eof

:skip
No comando skip usaremos a #PodeUsar 
bom ele serve para pular linhas em sequencias veja

CÓDIGO:
for /f "tokens=* skip=1" %%a in (Arquivo.txt) do (echo %%a)

o Resultado disso seria

CÓDIGO:
Linha2 Parte2 Teste2
Linha3 Parte3 Teste3

como você pode ver pulou a primeira linha
obs - ele não e assim, tipo você coloca "skip=3" não pense que ele ira pular somente a terceira linha, e sim ira pular a primeira segunda e terceira. (e simplesmente isso o skip e bem simples na verdade )
goto:eof

:eol
Diferente do 'skip' o 'eol' serve para ignorar linhas com caracteres especificados por ele e não importa se estejam em ordem ou não. olha isso na pratica.
digamos que você tenha um arquivo chamado "texto.txt" com isso dentro

CÓDIGO:
boss-head
real madrid
baby
o melhor
black
time
e quer pular somente as linhas que tenham o caractere 'b' no inicio da frase
você colocaria esse comando

CÓDIGO:
for /f "tokens=* eol=b" %%a in (texto.txt) do (echo %%a)

resultaria nisso aqui

CÓDIGO:
real madrid
o melhor
time
Não tem nada pra acrescentar sobre este complemento
goto:eof

:usebackq
Esse comando serve para interpretar o conjunto de outro modo.
exemplo:Você tem um arquivo chamado de 'Ola galera.txt' e queria visualiza-lo no for se você colocar assim

CÓDIGO:
for /f "tokens=*" %%a in ("Ola galera.txt") do (echo %%a)
O prompt interpretaria como cadeia de caracteres simplesmente por que tem as [""] e iria mostrar "Ola galera.txt" na tela e não o conteúdo do arquivo então para mudar isso usa-se o "usebackq" ficando assim o código
CÓDIGO:
for /f "tokens=* usebackq" %%a in ("Ola galera.txt") do (echo %%a)
ai sim iria mostrar o conteúdo do arquivo

Obs - Tive que colocar aspas no conjunto por que o nome tem espaço e e a mesma coisa tipo quando você copia um arquivo se contiver espaços no meio do nome tem que colocar [""].
goto:eof


:Sets
* Alguns detalhes importantes
1 - Não importa a varável %%a %%b %%c tudo vai dar no mesmo
2 - No conjunto de ações não precisa ter () eu só coloco por organização
3 - O '%%Var' só e interpretado quando e salvo como ".bat" no prompt de comando utilize o '%Var'
4 - A grande sacada do for e a parte do 'delims' e 'tokens' aprendeu isso já e 70 % concluído
5 - O for ira economizar dezenas de linhas no seu código quando você sacar ele direito
6 - Você pode ver alguns exemplos do for clicando aqui
goto End

:End
Bom com isso concluímos o tutorial tenham a total certeza que tentei ser o mais claro possível
Aos que não entenderam pode me mandar a sua duvida em uma MP e tentearei soluciona-la
Aos Mods e as membros em geral podem me falar se me equivoquei em algum argumento ou coisas do tipo
A todos um abraço de Agamenon e fiquem com DEUS.

Att. Hemnon

Autor: Hmenon do fórum Batch Satti

Bom fiz esse tópico para facilitar a vida de quem ainda tem problema com o comando "for",Para ser sincero eu também não sabia usar direito ele ate umas duas semanas atras, mais ai eu desvendei o mistério e irei compartilhar a formula secreta com vocês,bom o grande truque quando vai se aprender um comando tão complexo quanto o for está na aula experimental isso é você vendo com os seus próprios olhos o que cada complemento faz.

Obs -Usarei exemplos daqui do forum no tutorial e não estranhem se aparecer uma frase idêntica a do boss pois não da pra simplificar mais, então vamos começar.

base do comando isso é:

CÓDIGO:
For "complemento" %%variavel in (conjunto) do (ação sobre o conjunto)


Exemplos básicos desse comando

CÓDIGO:
for %%a in (Pasta1 Pasta2 Pasta3) do (md %%a)


CÓDIGO:
for %%b in (notepad.exe msnmsgr.exe ) do (taskkill -f -im %%b)


CÓDIGO:
for %%c in (File.txt File2.txt) do (del /s /f /q %%c)


Antes que você tenha essa duvida (Não importa a varável %%a %%b %%c tudo vai dar no mesmo)

Esses exemplos foi só pra dar uma pequena amostra do que este comando e capaz mais isso não e nem o começo agora vamos ver os complementos para utilização do "for".


> Opções para serem utilizadas antes dos "complementos"
[/L] - Serve para especificar um loop "for /l %%a in (1,1,100) do (echo %%a)"Exemplos + Explicação
[/D] - Serve para listar diretórios "for /d %%a in (*) do (echo %%a)" -------->Exemplos + Explicação
[/R] - E um Incremento para a opção '/d' "for /d /r %%a in (*) do (echo %%a)"Exemplos + Explicação 
[/F] - Serve como um ultilitario avançado de textos "tem muitos exemplos"

> Opções no "Conjunto" 
[""] - Especifica uma cadeia de caracteres "for /f "tokens=*" %%a in ("%Date%") do (echo %%a)" 
[' '] - Especifica um comando "for /f "tokens=*" %%a in ('type Arquvio.txt') do (echo %%a)" 
[ ] - Especifica conjunto de arquivos "for %%a in (Ola.txt Final.txt) do (del /s /f /q %%a)" 

> Complementos na opção /f 

Atenção ! Esses comandos so funcionam se estiverem acompanhados da opção '/F' & Antes de ver os "complementos" (goto teste)

[tokens] Limita visualização de camadas (goto tokens)
[delims] Especifica o caracter delimitador (goto Delims)
[skip] Especifica a quantidade de linhas para serem puladas (goto Skip)
[eol] Especifica o caractere para ser ignorado... (goto eol)
[usebackq] Muda a forma de se interpretar o conjunto (goto userbackq)
goto Sets

:teste
bom e meio dificil explicar esses complementos mais para melhor entendimento vamos precisar disso

CÓDIGO:
Linha1 Parte1 Teste1
Linha2 Parte2 Teste2
Linha3 Parte3 Teste3
Cole dentro do bloco de notas e salve como "Arquivo.txt"
obs - Quando tiver a hashtag #PodeUsar esta se referindo ao "Arquivo.txt" acima
goto:eof

:tokens
Veja você mesmo o uso desse comando
#PodeUsar

CÓDIGO:
for /f "Tokens=1" %%a in (Arquivo.txt) do (echo %%a)

O resultado disso seria

CÓDIGO:
Linha1
Linha2
Linha3

e se colocarmos

CÓDIGO:
for /f "Tokens=2" %%a in (Arquivo.txt) do (echo %%a)

o resultado seria

CÓDIGO:
Parte1
Parte2
Parte3

para que vejamos todo o conteudo do arquivo ultilizamos o caractere '*'

CÓDIGO:
for /f "Tokens=*" %%a in (Arquivo.txt) do (echo %%a)

bom podemos fazer variações na ordem de como se visualizara.

CÓDIGO:
for /f "Tokens=1,2" %%a in (Arquivo.txt) do (echo %%a %%b)
Dai isso resultaria em
CÓDIGO:
Linha1 Parte1
Linha2 Parte2
Linha3 Parte3
Percebam que no (conjunto de ação) eu coloquei "%%a" e "%%b" pois se ficasse só o "%%a" não apareceria a segunda coluna de linhas, coloquei o "%%b" por que o "B" e o numero afrente do "A", tipo se a variável fosse "%%1" ficaria "%%1" "%%2".
Poderíamos colocar

CÓDIGO:
for /f "Tokens=1,2,3" %%a in (Arquivo.txt) do (echo %%b %%a %%c)

isso acarretaria em

CÓDIGO:
Parte1 Linha1 Teste1
Parte2 Linha2 Teste2
Parte3 Linha3 Teste3
Também da pra encurtar o processo tipo você quer colocar o "tokens" de 1 a 9 envez de colocar 1,2,3... vc pode usar da seguinte maneira
CÓDIGO:
for /f "tokens=1-9" %%a in (Arquivo.txt) do( echo %%a %%b %%c ...)
então acho que já da pra sacar pra que serve este complemento né ?
goto:eof

:delims
ele especifica o caractere delimitador (entre as palavras)
exemplo:
você tem o seguinte código chamado "teste.txt"

CÓDIGO:
Linha1-Parte1-Teste1
Linha2-Parte2-Teste2
Linha3-Parte3-Teste3
E quer separar cada camada, se usar só o "tokens" não ira pegar simplesmente pelo fato de as palavras estarem uma em contato com a outra tipo você colocaria
CÓDIGO:
for /f "tokens=1,2,3" %%a in (teste.txt) do (echo %%c %%b %%a)
Iria aparecer a mesma coisa do código original,agora usando o "delims" tipo isso aqui
CÓDIGO:
for /f "tokens=1,2,3 delims=-" %%a in (Arquivo.txt) do (echo %%c %%b %%a)
acarretaria em
CÓDIGO:
Teste1 Parte1 Linha1
Teste2 Parte2 Linha2
Teste3 Parte3 Linha3
Outro exemplo que acho melhor ainda de se entender e o da data olhem
CÓDIGO:
for /f "tokens=1,2,3 delims=/" %%a in ("%date%") do (echo Ano - %%c Mes - %%b Dia - %%a)
O resultado disso seria
CÓDIGO:
Ano - 2012 Mes - 08 Dia - 10
Um detalhe importante de ser ressaltado e que o caractere delims não foi igual ao do exemplo passado eu usei o '/' por que na data ele é utilizado para separar dia més e ano '10/08/2012'
goto:eof

:skip
No comando skip usaremos a #PodeUsar 
bom ele serve para pular linhas em sequencias veja

CÓDIGO:
for /f "tokens=* skip=1" %%a in (Arquivo.txt) do (echo %%a)

o Resultado disso seria

CÓDIGO:
Linha2 Parte2 Teste2
Linha3 Parte3 Teste3

como você pode ver pulou a primeira linha
obs - ele não e assim, tipo você coloca "skip=3" não pense que ele ira pular somente a terceira linha, e sim ira pular a primeira segunda e terceira. (e simplesmente isso o skip e bem simples na verdade )
goto:eof

:eol
Diferente do 'skip' o 'eol' serve para ignorar linhas com caracteres especificados por ele e não importa se estejam em ordem ou não. olha isso na pratica.
digamos que você tenha um arquivo chamado "texto.txt" com isso dentro

CÓDIGO:
boss-head
real madrid
baby
o melhor
black
time
e quer pular somente as linhas que tenham o caractere 'b' no inicio da frase
você colocaria esse comando

CÓDIGO:
for /f "tokens=* eol=b" %%a in (texto.txt) do (echo %%a)

resultaria nisso aqui

CÓDIGO:
real madrid
o melhor
time
Não tem nada pra acrescentar sobre este complemento
goto:eof

:usebackq
Esse comando serve para interpretar o conjunto de outro modo.
exemplo:Você tem um arquivo chamado de 'Ola galera.txt' e queria visualiza-lo no for se você colocar assim

CÓDIGO:
for /f "tokens=*" %%a in ("Ola galera.txt") do (echo %%a)
O prompt interpretaria como cadeia de caracteres simplesmente por que tem as [""] e iria mostrar "Ola galera.txt" na tela e não o conteúdo do arquivo então para mudar isso usa-se o "usebackq" ficando assim o código
CÓDIGO:
for /f "tokens=* usebackq" %%a in ("Ola galera.txt") do (echo %%a)
ai sim iria mostrar o conteúdo do arquivo

Obs - Tive que colocar aspas no conjunto por que o nome tem espaço e e a mesma coisa tipo quando você copia um arquivo se contiver espaços no meio do nome tem que colocar [""].
goto:eof


:Sets
* Alguns detalhes importantes
1 - Não importa a varável %%a %%b %%c tudo vai dar no mesmo
2 - No conjunto de ações não precisa ter () eu só coloco por organização
3 - O '%%Var' só e interpretado quando e salvo como ".bat" no prompt de comando utilize o '%Var'
4 - A grande sacada do for e a parte do 'delims' e 'tokens' aprendeu isso já e 70 % concluído
5 - O for ira economizar dezenas de linhas no seu código quando você sacar ele direito
6 - Você pode ver alguns exemplos do for clicando aqui
goto End

:End
Bom com isso concluímos o tutorial tenham a total certeza que tentei ser o mais claro possível
Aos que não entenderam pode me mandar a sua duvida em uma MP e tentearei soluciona-la
Aos Mods e as membros em geral podem me falar se me equivoquei em algum argumento ou coisas do tipo
A todos um abraço de Agamenon e fiquem com DEUS.

Att. Hemnon