Programando arquivos .BAT

  • Publicado em: 25/05/2016
  • Revisado em: 16/07/2018
  • Categoria(s)Manutenção de PCs, Windows
  • Autor: Ricardo Bernardi
  • Newsletter: Inscreva-se

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

Referência completa da linguagem

Para ver todos os comandos aceitos ou exemplos de usos acesse https://en.wikibooks.org/wiki/Windows_Batch_Scripting

Compartilhe esse post:

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 56 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.

  • ALAN comentou em

    QUAL O COMANDO EM .BAT PARA REALIZAR UM "DIR " DIRETO DO DIRETORIO

    DIR "C:\Documentos\POJETOS alan\201\ARQS\" TO ARQS2.TSV ---- porem o arquivo TSV não e realizado

    se eu colocar copy *.* ARQS.tsv ele consegue realizar o "bat"

    Responder
  • Gustavo comentou em

    Olá gostaria de saber como faz para deixar uma area para pessoa responder minha pergunta:
    exemplo:
    prompt:oi
    ele:oi
    prompt:td bem
    ele:sim
    ETC.

    Responder
  • Ouki comentou em

    Boa noite, gostaria de saber se tem como colocar o comando de:
    escolher um numero [1] e depois que executar a "op1" no final volta para o inicio para escolher outro numero das opções.

    Ex: eu escolho a opção 1 e depois que executar o comando, ele volta para o inicio para escolher outras opções.
    Ou se tiver como colocar uma opção de voltar pro inicio.

    Grato.

    Responder
    • Médici comentou em

      Voce pode fazer um Goto:
      Tipo voce cria blocos de ação ele pede as opções (SET)
      dai ele analisa a entrada e se for OP1 GoTo OP1

      :OP1
      blablablabla
      GoTo Menu
      :OP2
      blablablabla
      GoTo Menu
      :Menu

      Responder
  • Michel comentou em

    Ricardo,

    Olá, qual comando que uso para conectar em um computador da rede

    wmic /node:XXXX

    Gostaria de ciriar uma automação onde eu digita se o ip de conecxao

    O comando abaixo eu consigo, mas gostaria de preencher a tela com o IP e usuario para ter acesso ao destino.

    wmic /node:XXX /userXXXX@XXXX.local product get name,version,vendor

    Responder
  • Mauricio Freire comentou em

    Estou tentando automatizar um processo executado no terminal Putty (via serial). Preciso digitar alguns comando como usuário, senha e habilitar algumas funcionalidades do produto. Como eu faço para reconhecer esses comandos?

    Responder
  • Daniel Dantas comentou em

    Camarada, 2021 e ainda lendo posts fantásticos como o seu que traz soluções antigas e simples. Gostaria de saber, como posso AUTOMATIZAR uma tarefa que seria de importar certificados pelo browser? Tipo usar comandos .bat para entrar na guia de gerenciar certificados que fica dentro de privacidade e segurança que está dentro de configurações. Pode dar uma ideia de script?

    Responder
  • Elias comentou em

    Olá!
    Obrigado por compartilhar conhecimento!
    Tenho uma pergunta.
    Tenho executáveis. Que precisa ser executados um após outro. Quando finalizar um rodar o outro.
    E possível fazer isso no bat.

    Abraço, Obrigado!

    Responder
  • alexandre comentou em

    olá Ricardo eu estou a criar um inteligência artificial ele já tem fala porem n sei como faço para ele executar uma ação quando eu digito uma certa coisa no propt só sei faze-lo falar algo, pode me ajudar?

    Responder
      • Da mesma forma, procure um editor de imagem compatível com o msdos da sua versão windows, programas mais antigos e de ótima compatibilidade, ele irá abrir em seu menu prompt para desenhar na tela. Insira o comando no seu arquivo .bat start editor-jpg.exe. Abraços

        Responder
    • Procure um editor de .cs ou .js simples, por exemplo um programa compilado para isso, coloque este programa .exe na sua linha de comando do .bat ex: start leitor-cs.exe e pronto, acredito que o comando TYPE do prompt do windows não irá conseguir exibir a codificação de um .cs ou .js, um abraço.

      Responder
  • Victor comentou em

    Eu estou criando um chatbot com o .bat ele ja me responde me chama pelo nome do computador e ainda me passa a data e a hora... eu gostaria que ele tbm pudesse abrir aplicativos como o chorme quando eu pedisse, porem se eu coloco pra ele fazer isso ele executa o programa logo após eu abrir o arquivo e não quando eu mando... como eu resolvo isso?

    Responder
  • JOSE FLAVIO comentou em

    Ricardo, boa tarde. Espero que possa me ajudar.
    Gostaria que meu comando de lote executasse um determinado arquivo exe , todas as sextas feiras, pode ser ao iniciar o sistema ou em horário definido.
    Se possível com o cmd minimizado.
    Desde já agradeço se puder me ajudar.
    Segue meu comando:

    @ECHO OFF
    timeout /t 2
    @ECHO.
    CD\
    CD GDOOR Sistemas
    CD GDOOR PRO
    Atualizador.exe
    EXIT

    Atenciosamente,
    José Flávio

    Responder
  • Humberto Galvani comentou em

    Oi Ricardo eu precisoem um arquivo Bat comparar se a data que o arquivo foi gravada é menor que a data do sistema pode me ajudar com isto existe uma forma de comparar e identificar isto e testar pois se isto ocorrer eu tenho que encerrar a bat caso contrario executo meu comando sql.

    Responder
  • wigreth comentou em

    bom dia,
    estava precisando criar uma bat para abrir um diretório e fecha-lo em seguida
    consegui fazer com que abra o diretório, porem para fecha-lo não consegui ainda.

    Poderia me ajudar nessa questão?

    Responder
    • para abrir diretório:
      start e o diretório ex: start c:\games (abrirá o dir. games) (o explorer.exe estará executando e mostrando o conteúdo do diretório)

      para fechá-lo:
      taskkill /F /IM explorer.exe (fechará todos os diretórios abertos dentro do esplorer.exe)

      para reativar sem mostrar os diretórios que estavam abertos:
      start explorer.exe

      Responder
  • Henrique Vinicius comentou em

    Bom dia, eu preciso criar uma .bat para enviar msg para todos os meus usuários de uma unica vez. msg de manutenção de sistema por exemplo.

    Responder
  • Diego comentou em

    Ola, muito bom o video no youtbe!! Estou tentando fazer um script para dar Keylogger em qualquer tecla digitada desde que o PC inicia, e nao somente abrindo o prompt e fazendo perguntas... Vc teria alguma ideia? grato!

    Responder
  • Guilherme comentou em

    Bom dia,

    Ricardo veja se consegue me dar uma luz,

    Eu preciso enviar um arquivo host pela rede aqui na empresa.
    então eu preciso enviar o arquivo host para todas as maquina, e la na pasta preciso e renomeia e coloca o novo arquivo.
    Colocando o ip da maquina no arquivo bat e enviando para aquela maquina.

    Responder
  • Marcus Andrade comentou em

    Olá, tudo bom?
    o que seriam os : : em um arquivo bat? é uma inscrição para rotinas dentro dele?

    Obrigado.

    Responder
  • Gustavo comentou em

    Olá,

    Eu preciso de um arquivo bat que faça a repetição "Ctrl + C";"Alt + Tab";"Backspace";"Ctrl + V".

    Como eu posso programar isso?

    Responder
      • Lucas comentou em

        Boa tarde senhor,

        Tenho a mesma dúvida e não consegui aplicar nas lições do vídeo. Eu quero fazer um Ctrl+Alt+Del para chegar a tela que me permita alterar senha de usuário. Preciso alterar minha senha em uma área de trabalho remota, porém este atalho no teclado acessa a troca de senha do usuário local do PC.

        Cordialmente, Lucas Ferreira.

        Responder
  • Tarcísio Amorim comentou em

    Olá RB, tudo joia? Minha dúvida é a seguinte....

    Como faço pra conectar em uma pasta compartilhada com senha? Preciso abrir o caminho de rede até um PC, mas não posso gravar os dados da senha na maquina, por isso queria usar um bat para todo dia iniciar e fazer o logon na rede. Agradeço a atenção e o ótimo post!

    Responder
    • Cara, você precisa dar uma olhada na documentação sobre os comandos disponíveis para arquivos .bat direto no site da MS. Dá uma Googlada sobre "comandos rede .bat" e vê o que lhe serve, eu nunca usei nada parecido para ajudar.

      Responder
  • André Silva de Araújo comentou em

    Ola Ricardo,

    Poderia me ajudar por favor, preciso realizar um trabalho com uma grande quantidade de informações e pelo que vi de seu video, essa ferramente poderia me ajudar.
    Estou precisando transportar uma imensa quantidade de XML, de pastas que são geradas, uma para cada dia e em seguida unifica-las todas em uma única pasta.
    Como poderia criar um comando em .bat, para realizar de forma automatica essa migração desses arquivos?

    Responder
    • Você precisa pesquisar os comandos para fazer aquilo que você precisa e então ir testando até chegar a um resultado que atenda sua necessidade. Comece buscando por "comandos copiar arquivos bat" e depois vai alterando sua pesquisa para encontrar aquilo que precisa.
      Dá pra fazer (quase) tudo via comando no sistema, o que eu mostrei aqui serve apenas para dar o start e despertar a curiosidade de tentar fazer.

      Responder
  • Renato comentou em

    Gostaria de um arquivo bat para exibir uma partição oculta, fazer backup nela e oculta-la novamente. Tem como?

    Responder
  • franklin justino comentou em

    olá bom dia, olha gostei do seu blog,parabéns !
    como faço pra ocultar a janela da area de trabalho, de um arquivo .bat e deixalo rodando altomaticamente sem apresentar os icones na barra de tarefas. nesse caso extremamente invisivel.
    agradeço a ajuda.obrigado!

    Responder
  • Juan comentou em

    Me ajuda, tem alguma variavel ou comando para caso o usuario coloque qualquer combinação de letra ou número?

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