Ir para conteúdo

~ Aprenda a programar em batch (bat) ~


Rods72 Banido (2)
 Compartilhar

Posts Recomendados

Apresentação

Bom, eu me chamo Rodrigo tenho 18 anos e mexo com programação a quase 4. (FUCK, isso não importa)

Hoje vou estar passando para vocês um pouco sobre arquivos .bat, como programar, seus comandos e suas funções.

Ao meu ver, é uma linguagem bem simples, porém muito vantajosa e fácil de aprender.

Espero que todos entendam, e que algum dia isso sirva de alguma coisa (claro que vai servir, oh lord!).

 

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ço um arquivo bat?

 

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

 

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;

 

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

 

É necessário se cadastrar para acessar o conteúdo.

 

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

 

Por exemplo:

 

É necessário se cadastrar para acessar o conteúdo.

 

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:

 

É necessário se cadastrar para acessar o conteúdo.

 

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.

 

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

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.

 

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

 

É necessário se cadastrar para acessar o conteúdo.

 

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:

 

 

É necessário se cadastrar para acessar o conteúdo.

 

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:

 

 

É necessário se cadastrar para acessar o conteúdo.

 

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:

 

 

É necessário se cadastrar para acessar o conteúdo.

 

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 você mesmo;

 

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

 

É necessário se cadastrar para acessar o conteúdo.

 

Exemplo 2 (Intermediário/Avançado)

 

É necessário se cadastrar para acessar o conteúdo.

 

 

Créditos

Rods72 and Desvendando novos hackers!

Link para o comentário
Compartilhar em outros sites

Não entendo muito disso, na verdade nada. é uma dor de cabeça ehuahe

mas o tópico ficou bem legal, acho que deve Centralizar tudo, ai sim ficará bem formatado.

o conteúdo ficou ótimo, bem explicado, eu li tudo e compreendi várias coisas que não entendia ainda

como o porquê do Bat só possuir 3 letras, e sua função. bem legal :)

obrigado por compartilhar

 

abraços

Link para o comentário
Compartilhar em outros sites

Faltou um monte de função:

É necessário se cadastrar para acessar o conteúdo.

É necessário se cadastrar para acessar o conteúdo.

e a função mais importante a help, mas o tutorial está muito bom, ensinando a usar if, declarar variáveis e etc, abraços.

Link para o comentário
Compartilhar em outros sites

Muito obrigado pelas dicas Mônica, prometo melhorar com as imagens na próxima vez.

Espero que ter ajudado.

Abraçs

 

The best programmers are made of competence and willingness to help those in need.

Link para o comentário
Compartilhar em outros sites

## Nãao entendia muito disto mais com estas explicações ate que da pra entender um pouco , topico bem organizado , e sempre focando o assunto , Adicione Prints mais explicações pra melhorar o entendimento de quem ler , Otimo o Topico , Vaalew por compartilhar

S

Link para o comentário
Compartilhar em outros sites

Sinceramente sempre se superando Rods o tópico está excelente com ótimo conteúdo sem falar que ta tudo formatado e tal.

Ajuda muito os outros.

 

Thankis

ibbcIStQ0hPtKc.png
Link para o comentário
Compartilhar em outros sites

To pensando em largar C++ e ir programar em BAT hein, hahaha.

Legal as dicas, aprender linguagens novas nunca é demais.

O que falar dessa assinatura que nem escrevi mas já considero pakas?

http://www.webcheats.com.br/forum/tutoriais-wc/2242064-como-colocar-assinaturas-post8832945.html#post8832945

<3333

Link para o comentário
Compartilhar em outros sites

Otimo tuto, eu ja desliguei alguns PC's com arquivos bat ariairiariariarir, existem pessoas que nao entemdem direito, mas devo admitir que e complicadinho aprender a fazer isso.

Abraços ^^

Run Nigga, Run Nigga

Duck Nigga, Duck Nigga

Link para o comentário
Compartilhar em outros sites

Pra quem começa na área é bem complicadinho mesmo, até ir pegando as manhas.

Sou programador a 4quase 4 anos, e devo confessar que essa é uma das coisas que mais me agrada mexer.

Lembrando que; É possível fazer de quase tudo em .bat, até mesmo programar um computador da forma mais bizarra kk

Em breve mais conteúdos, abraçs

Link para o comentário
Compartilhar em outros sites

To pensando em largar C++ e ir programar em BAT hein, hahaha.

Legal as dicas, aprender linguagens novas nunca é demais. [/color][/font]

C++ é uma linguagem muito mais complexa que batch, não teria sentido você largar uma linguagem mil vezes superior, o batch serve muito para manipular arquivos e fazer mais algumas outras coisas.

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.