Programando arquivos .BAT

Aviso importante!

Eu sei que você não quer ver propagandas, porém o conteúdo gratuito só está aqui graças a publicidade. Considere desativar o AdBlock para esse site.

Arquivos em lote ou .BAT podem até parecer um tanto arcaicos, mas são muito úteis principalmente para quem trabalha com manutenção de computadores. Eles podem ser usados para automatizar tarefas repetitivas ou até mesmo para evitar a decoreba de comandos que muitas vezes acaba causando confusão na cabeça de muita gente (eu me incluo nesse grupo).

No vídeo de hoje vou mostrar uma lógica básica para programar arquivos em lote e automatizar uma série de procedimentos do seu dia a dia. Note que vou mostrar apenas uma base para despertar a curiosidade, cabe a cada um buscar outras possibilidades a partir do que será visto na aula a seguir.

Comandos úteis para arquivos .BAT

  • ECHO - escreve uma informação na tela
  • @ECHO OFF - desliga as mensagens nativas do prompt
  • @ECHO ON - mostra informações e mensagens nativas do prompt
  • ECHO. - deixa uma linha em branco
  • @ECHO - oculta o prompt durante toda execução
  • SET - cria uma variável
  • CLS - limpa a tela
  • IF e ELSE - estruturas condicionais
  • EXIST - verifica se algo existe, uma variável por exemplo
  • GOTO - vai para um determinado ponto do arquivo
  • :NOME - ponto de parada que pode ser chamado através do GOTO NOME
  • FOR - estrutura de repetição
  • PAUSE - faz uma pausa na execução do arquivo
  • comando > NUL - oculta a mensagem de uma linha ou comando
  • MSG * - mostra um balão de aviso na tela
  • REM - usado para fazer comentários que não serão interpretados pelo prompt
  • START - inicializa um aplicativo
  • CALL "%variavel%" - abre um arquivo/programa com espaços no nome
  • IF NOT DEFINED "%variavel%" GOTO comando - se a variável não estiver definida vai para uma seção específica do arquivo

Variáveis do sistema

Dica: para saber o que cada uma dessas variáveis retorna use o comando ECHO seguido pelo nome da variável, assim o valor será mostrado na tela.

  • %username% - nome da conta do usuário logado
  • %userprofile% - pasta do perfil do usuário
  • %temp% - pasta temporária
  • %windir% - pasta de instalação do Windows
  • %systemroot% - pasta raiz do sistema
  • %time% - hora do sistema
  • %date% - data do sistema
  • %homedrive% - letra do drive com o diretório de usuários
  • %userdomain% - nome do domínio
  • %systemdrive% - letra do drive onde o sistema está instalado
  • %cd% - retorna o caminho do .bat

Sobre o autor

Ricardo Bernardi

Sou técnico em hardware e desenvolvedor web, e sobre estes dois assuntos comecei a compartilhar aulas e artigos, tornando-me blogueiro em 2008. Em 2010 esse hobby virou profissão, e desde então tenho buscado melhorar e profissionalizar cada vez mais os projetos que mantenho na web.

Comentários

Atualmente temos 15 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.

  • GUSTAVO MESQUITA comentou em

    Queria copiar uma pasta de um dispositivo portátil com o sistema WindowsCE (coletor de dados) para o desktop com .vbs ou .bat.
    Até mesmo com celular não sei como identificar o caminho (ex. Computador\Galaxy J5\Card\*.*)

    Eu tentei com .bat, mas não sei como colocar o caminho. O caminho que mostrado na pasta aparece "Computador\WindowsCE\Storage Card\ExpCont"

    Por não ter uma letra de unidade (C:. por exemplo) não consigo escrever isso em .bat

    como .bat é muito limitado, vou tentar .vbs

    ou Qualquer forma automática e q não precise instalar programas

    Responder
  • Sandro comentou em

    Ola..primeiramente parabéns pelo seu conteúdo, são de muita ajuda para meu trabalho.. veja se pode me ajudar..
    ]
    Tenho que fazer um arq bat para abrir um site aguardar um tempo e depois fechar, pode me ajudar.

    Responder
  • armando comentou em

    Irmão, boa tarde.

    Como enviar um e-mail para várias pessoas com anexo através do arquivo bat?

    Responder
  • Luiz Carlos S. Nunes comentou em

    Ricardo, boa tarde.

    Você poderia me dar uma ajuda. É o seguinte:

    Eu utilizo no Menu Iniciar / Executar, os seguintes comandos, sendo um de cada vez, para dar uma limpeza, ou seja:
    1) recent

    2) prefetch

    3) %temp%

    Como seria um arquivo de lote (bat) para esse caso?

    Agradeço desde já a sua atenção.
    Um abraço,
    Luiz Carlos

    Responder
    • Luiz, conforme eu menciono, o vídeo traz exemplos, agora você precisa buscar mais possibilidades conforme sua necessidade.
      Aprenda navegar na estrutura de arquivos usando o comando CD e busque detalhes sobre o comando DEL e conseguirá fazer o que precisa.

      Responder
  • Cassio Raposa comentou em

    Opa, Ricardo, falei besteira! Por muitas formas de interpretar o termo bats e scripts são sim programação - interpretada, mas programação ainda assim pela possibilidade do uso de algoritmos.
    Fica aqui minha retificação, rapaz! Abraços.

    Responder
  • Cassio Raposa comentou em

    Muito interessante ver gente ensinando sobre arquivos de lote em Windows. Embora sejam o dia-a-dia pro pessoal em unix/linux etc, temos muitos técnicos em informática que não entendem o conceito de lidar com comandos em lote. Já fiz malabarismos pra salvar instalações de Windows "condenadas" a partir de uso criativo de arquivos de lote, o conhecimento é de fato valioso pra qualquer técnico.

    Fica apenas o lembrete, se não passa por compilador, não importa a linguagem, não é programação: é linguadem de interpretação (código passa por um interpretador, no caso o shell, em tempo real). Javascript, HTML, sheelscript, BATs de windows, nada disso é programação, é interpretação. Um programa é um arquivo compilado (obrigatoriamente), aonde o código deixa de ser linguagem "humanamente interpretável" e vira linguagem de máquina, ai sim é programação. Para scripts, os termos "criação, edição" e o aportuguesado "scriptagem" são corretos.
    Abraços, sucesso no blog!

    Responder
  • Manuel comentou em

    Não consigo utilizar o comando MSG no windows 10, já efectuei pesquisa na internet, e não consigo solução, será que me pode ajudar?'

    Responder
  • Leilson comentou em

    E ai Ricardo ,
    cara to com um problema , pois , preciso fazer um script de liberação de um programa e de portas no firewall do windows , teria como vc me dar uma luz no fim do tunel?
    Agradeço desde já

    Responder
  • charles dos santos comentou em

    Olá Ricardo, acompanho sempre o seu canal e parabéns pelo vídeo eu queria saber uma informação sobre um arquivo como eu crio um gerenciador HID.exe para gera código Hardware ID. txt na área de trabalho

    Responder
    • Geração de ID de hardware tem vários caminhos, pois cada componente tem códigos únicos que podem ser usados para isso. A única vez que fiz foi pegando o ID do disco para validar um app, mas fiz usando Delphi na época.

      Responder
  • Samuel comentou em

    Cara, é arcaico, mas eu que trabalhei por anos como suporte técnico de uma empresa de TI, é uma mão na roda, existia uma rotina de backup de arquivos que tive que montar em um .bat e com comandos pelo winrar, tenho até hoje o arquivo, digamos que foi a primeira forma de "programação" antes de aprender PHP. Muito top !

    Responder
  • Renato comentou em

    DÚVIDA:
    Olá Ricardo, acompanho sempre o seu canal e parabéns pelo vídeo, mas tenho uma dúvida qual a diferença de comandos feitos pelos ( arquivos .bat ) e ( arquivos .cmd.)
    Por favor me explique se tem diferença e qual é?
    desde já meu obrigado.

    Responder
    • .BAT foi o primeiro formato de arquivos em lote adotado pela Microsoft, enquanto .CMD é um formato compatível a partir do WinNT e derivados, ele tem algumas diferenças na sintaxe e alguns comandos diferentes.

      Responder

Deixe seu comentário