Ir para conteúdo
Faça parte da equipe! (2024) ×

~ 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

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

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

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • 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.