Batch - Introdução
Nesse texto nós apresentamos uma introdução a linguagem Batch, que é usada para escrever scripts que serão executados pelo CMD. Nós vamos entender o que é o CMD e depois já vamos criar nosso primeiro programa com a linguagem Batch. Nesse documento, ainda é disponibilizado uma lista com alguns comandos que podem ser utilizados.
Mas por que aprender a linguagem Batch? Para falar a verdade, hoje em dia isso é mais para quem tem curiosidade. Existem ferramentas que podem fazer bem mais que o CMD. De todo modo, entender Batch para aproveitar melhor o CMD ainda pode resumir horas de trabalho em alguns segundos. Com ela podemos automatizar tarefas, como a criação de um sistema de pastas por exemplo. Nesse sentido, aprender a linguagem Batch - que é a linguagem que usamos para criar os programas que serão executados pelo CMD - é muito útil para quem quer trabalhar melhor com o computador. Além disso, ter novos conhecimentos na bagagem é sempre uma coisa boa. Dificilmente você verá alguém lamentando ter aprendido algo novo.
Nota: apesar da linguagem Batch ser bem útil, existem algumas limitações. Então seria interessante se você também estudasse os comandos do PowerShell - outro interpretador que também vem com o Windows.
O que é Prompt de Comando (CMD)?
O Prompt de Comando, também chamado de CMD, é um programa que oferece uma interface de usuário, a qual permite a interação do usuário com os recursos do sistema Windows. A interface criada é do tipo command-line interface (CLI), que traduzido para o português fica Interface de Linha de Comando (ILC), e, portanto, o usuário interage com os recursos do sistema por meio de comandos escritos que serão interpretados pelo CMD para execução da tarefa desejada.
Navegação no CMD
Como o Batch foi criado para ser usado no CMD, é comum que suas operações envolvam arquivos e pastas. Dessa forma, convém aprendermos como chegar até esses elementos no computador usando alguns comandos mais comuns.
Vamos começar pelo comando DIR
. Esse comando é usado para listar todos os arquivos e pastas que estão dentro de uma pasta. Para ver esse comando funcionando, primeiro digite CMD na caixa de pesquisa do Windows. O programa Prompt de Comando aparecerá logo no topo. Clique sobre ele. Uma janela como a seguinte irá se abrir:

O programa já é aberto com alguma coisa escrita. Na primeira linha, nós vemos a versão do Windows instalada na máquina no momento em que o CMD foi aberto. Na segunda linha temos uma mensagem de copyright da Microsoft. Na terceira linha temos um texto que chamamos de prompt, que é usado para indicar que o sistema está pronto para o próximo comando. Esse texto pode ter diferentes conteúdos, e inclusive ser informativo. É possível navegar pela estrutura de pastas do sistema através do CMD, e o prompt, nesse caso mostra o caminho para a pasta que o usuário está atualmente. Por exemplo, o prompt c:\Users\Fernando
mostra que atualmente o usuário está com o CMD aberto na pasta Fernando, que está dentro da pasta Users, e que por sua vez está dentro do dispositivo de armazenamento identificado com c:.
Nós podemos modificar esse texto usando o comando prompt
. Basta colocar o texto que deve ser usado após o comando. Por exemplo, o comando prompt meuprompt
coloca o texto ‘meuprompt’ no lugar do caminho para a pasta atual. Use prompt /?
para ver todas as opções.
Agora, vamos digitar o comando DIR
e apertar Enter.

Como resultado, todo o conteúdo da pasta onde o CMD estava aberto, C:\Users\Fernando, foi exibido para o usuário. As informações são exibidas em “colunas”. Na primeira coluna é exibida a data da última modificação. A segunda exibe o horário da última modificação. Na terceira pode ou não conter o valor <DIR>, que é usado para indicar se o item é um diretório (uma pasta) ou não. A última mostra o nome do item.
Nós podemos acessar essas pastas usando o comando CD [pasta]
, em que [pasta] deve ser substituído pelo nome da pasta/diretório que deve ser acessado. Por exemplo, digamos que precisamos acessar a pasta Music, para isso nós digitamos CD Music
.

Retornar para o diretório anterior é tão simples quanto digitar CD ..
(perceba os dois pontos logo depois do comando) no CMD.

Para retornar duas pastas, nós usamos cd ../../
, se forem três nós digitamos cd ../../../
, e assim por diante.
Para acessar uma subpasta, ou seja, uma pasta que está dentro de outra pasta, e que por sua vez pode estar dentro de outra pasta, nós não precisamos entrar em cada uma delas até chegar até a que a gente quer. Só o que precisamos é o endereço da pasta relativo a pasta atual, ou o endereço completo do diretório. Por exemplo, digamos que dentro da pasta Music, exista uma pasta chamada rock, e dentro desta há uma outra pasta chamada ac_dc. Nós não precisamos entrar na pasta Music, depois rock e então ac_dc, nós podemos pular direto para a última pasta que é a que a gente quer. Para esse fim, nós podemos usar o comando CD music\rock\ac_dc\
.

Os diretórios music e rock foram pulados e o CMD foi direto na pasta ac_dc. Nós usamos o comando CD para acessar essa subpasta. Perceba que usamos o caminho relativo da pasta desejada. O caminho é relativo quando é levado em consideração o ponto de partida do CMD, que é a pasta em que ele está no momento. Nesse caso, o programa estava na pasta Fernando, daí para chegar até a pasta ac_dc, tínhamos que entrar na pasta music, acessar a pasta rock e finalmente a pasta ac_dc.
Além disso, também é possível usar o endereço completo da pasta que, nesse caso, é C:\Users\Fernando\Music\rock\ac_dc
.

Perceba que, na maior parte dos casos, o endereço completo do arquivo independe de onde o CMD está aberto. No entanto, quando esse diretório se encontra em outra unidade de armazenamento, é preciso acessá-la primeiro. Por exemplo, se no seu computador existe um pen drive identificado por e:, e o CMD está aberto no disco c:, para acessar qualquer pasta neste dispositivo nós precisamos entrar em e: pelo CMD primeiro, e então acessar a pasta desejada.
Vamos supor que exista uma pasta chamada cursos em um pen drive d:. Para acessar essa pasta, nós acessamos o pen drive digitando d: no CMD, e então inserimos o comando para entrar no diretório.

Esses são os comandos que normalmente usamos para navegar pelas pastas que estão contidos no computador. A partir daqui, vamos focar nos arquivos escritos com Batch Script.
Ferramentas Necessárias
O ambiente para o desenvolvimento em Batch é muito simples. Basicamente, você vai precisar de um computador com Windows instalado para conseguir executar o programa. E além disso, você vai precisar de um editor de texto simples, que pode ser o próprio bloco de notas.
Se você não quiser usar o Bloco de Notas do Windows, há também opções de programas que podem ser baixados como o notapad++ ou o sublime 3. Existe também a opção de utilização de uma IDE (Integrated Development Environment). Esse é um programa que integra diversas ferramentas que facilitam a programação, tais como um depurador que procura por erros de sintaxe no código, o IntelliSense que é um conjunto de funcionalidades que ajuda o programador a escrever o programa mais rápido. Entre as IDEs, podemos citar o Batch Compiler, que permite também a criação de uma versão .exe do seu documento, o que é bem útil quando não é desejável que outras pessoas possam xeretar o seu código.
Como criar Arquivos Contendo Batch
Para criar documentos no Bloco de Notas, Notepad++, Sublime 3 ou em outros editores:
- Com o programa aberto, crie um novo arquivo se necessário;
- Digite o script e então salve o arquivo como .cmd ou .bat.
Para criar arquivos no Batch Compiler também precisamos de poucos passos:
- Abra o programa, digite os comandos que você quer executar na tela branca que aparecer.
- Vá em file > save, escolha o local onde o arquivo deve ser salvo, e clique em salvar.
A criação de executáveis que pode ser feita utilizando a IDE Batch Compiler é realizado seguindo os seguintes passos:
- Abra o programa e digite os comandos necessários na area de edição (tela em branco);
- Clique no ícone indicado na imagem.

- Vai abrir uma janela chamada “Compile | Batch Compiler”. Nessa janela você pode definir diversos parâmetros referente ao programa, tais como mostra a imagem e a descrição que se segue:

Opções de compilação do Batch Compiler. A - Uma descrição do programa;
B - O nome da empresa dona do programa;
C - Informações de copyright;
D - Informar o local onde o executável será salvo;
E - Definir a visibilidade do programa;
F - Definir o nível de privilégio que usuário deve ter para executar o programa;
G - Dar um número de versão para o programa;
H - Adicionar recursos extras.
Quando estiver tudo pronto, você pode finalmente clicar no botão compilar.
Criando e Rodando Arquivos Batch
Com tudo pronto, mãos à obra! Abra o editor que escolheu, e digite o código abaixo (vamos destrinchá-lo logo em seguida):
ECHO Hello, world!
ECHO.
PAUSE
O comando ECHO
é utilizado para indicar ao CMD que queremos imprimir alguma coisa na tela para o usuário. A estrutura é ECHO [mensagem]
, onde [mensagem] deve ser substituído pela mensagem que deseja mostrar. Não é necessário o uso das aspas como em outras linguagens. Se você colocar o texto entre aspas, ele será exibido entre aspas. Nesse caso a mensagem é “Hello, world!”.
O comando ECHO.
é um comando usado para inserir uma linha vazia, ajudando a manter uma estética mais apresentável para o usuário.
O comando PAUSE
impede que o CMD feche assim que terminar de executar as instruções que acabamos de passar. Sem esse comando o CMD executa o script e se fecha logo em seguida.
Agora salve o arquivo com a extensão .bat (e.g., hello-world.bat) e depois basta clicar sobre ele para executa-lo.
Resultado:

Dica: apague o comando PAUSE
e execute o script novamente para comparar os resultados.
Também é possível executar o arquivo diretamente pelo CMD. Para tanto, navegue pelo CMD até a mesma pasta em que o programa foi salvo, e então digite o nome desse script. Nesse caso, meu arquivo foi salvo como ‘hello-world.bat”, e está na pasta “batch-lang”, então por esse método eu devo abrir o CMD, navegar até essa pasta “batch-lang” e digitar “hello-world.bat”.

Uma coisa que você deve ter percebido é que os comandos colocados no arquivo (ECHO Hello,world!
, ECHO.
e PAUSE
) apareceram no CMD quando o mesmo foi executado (se não percebeu, volte lá para dar uma olhada). Isso faz com que a tela fique mais poluída, e as informações mais difíceis de ler, principalmente quando temos scripts gigantes. Para diminuir essa poluição visual podemos usar o comando @ECHO OFF
logo no início do documento. Esse comando indica para o CMD que ele não deve mostrar os comandos na tela, mas apenas os resultados destes (caso tenha um resultado para mostrar na tela).
Nesse caso nosso arquivo ficaria da seguinte forma:
@ECHO OFF
ECHO Hello, world!
ECHO.
PAUSE
Agora os comandos serão suprimidos enquanto que o resultado desses comandos será exibido para o usuário.

Como dito, um arquivo .bat ou .cmd não passa de um documento com um ou mais comandos que você digitaria diretamente no prompt de comando com a adição de um ou outro recurso. Portanto, qualquer comando que costumamos usar no CMD, podemos também digitá-lo no arquivo “.bat” ou “.cmd”.
No exemplo abaixo escrevemos um script que vai mostrar todos os arquivos e pastas dentro da pasta onde o arquivo .bat está localizado.
@ECHO OFF
DIR
PAUSE
Supondo que o arquivo esteja salvo em uma pasta nomeada “batch-lang”, quando ele for executado será listado todo o conteúdo desta pasta.

No entanto, perceba que nem todo comando que pode ser inserido em um arquivo script terá alguma utilidade ao ser digitado diretamente no CMD. O comando GOTO
, por exemplo, é utilizado para modificar a ordem de execução de um programa, apontando para outra parte do arquivo que o CMD deve ler. Dessa forma, ao ser usado fora de um arquivo, esse comando deixa de ter utilidade. Você entenderá mais sobre esse comando quando falarmos sobre labels (rótulos).
Comandos
Os comandos apresentados até aqui não são os únicos. Abaixo é apresentado uma tabela em português com alguns dos comandos disponíveis.
Comandos da Linguagem Batch e sua Respectiva Função
Comando | Função |
---|---|
ARP | Exibe e modifica as tabelas de conversão de endereços IP para endereços físicos usadas pelo protocolo de resolução de endereços (ARP). |
ASSOC | Muda ou exibe a relação entre uma extensão e um tipo de arquivo. As extensões são, geralmente, uma parte de um nome maior que indentifica o tipo do arquivo. Por exemplo, a extensão .jpg é usada para arquivos do tipo jpegfile, mas nós podemos mudar essa associação com esse comando. |
ATTRIB | Exibe ou altera atributos de arquivos. |
BCDBOOT | Criar ou reparar uma partição do sistema. |
BCDEDIT | Uma ferramenta para o gerenciamento do BCD (Boot Configuration data ou Dados de Configuração de Inicialização). O BCD é um banco de dados, um conjunto de dados organizados, que armazena dados necessários para a correta inicialização do sistema. |
BITSADMIN | O Background Intelligent Transfer Service (Serviço de Transferência Inteligente em Plano de Fundo) gerencia o serviço de transferência inteligente de arquivos de forma assíncrona, priorizada, e acelerada de arquivos entre máquinas usando largura de banda disponível no momento . |
CACLS | Exibe ou altera permissões de arquivo. A lista de permissões define quais usuários/grupos de usuários podem ler ou editar um arquivo. Se aplica somente para arquivos armazenados em um disco formatado como NTFS. |
CALL | Inicia outro programa em Batch.* |
CERTREQ | Solicita um certificado digital de uma autoridade de certificação.Um certificado digital autentica a quem pertence um software, um PC, uma chave pública usada para encriptação. Esse certificado digital é fornecido por uma autoridade de certificação, uma entidade reconhecida e confiável como a Google. |
CERTUTIL | Gerencia os serviços e arquivos da autoridade de certificação. |
CD | Usado para navegação entre diretórios.* |
CHANGE | Alterar propriedades da sessão do Terminal Server. |
CHANGEPK | Muda a edição do Windows ou a chave do produto. Por exemplo, é possível sair do Windows Home para o Windows Pro Education se a chave do produto for modificada. Todos os upgrades possíveis são listados no site da Microsoft |
CHCP | Altera o atual codificação dos caracteres no CMD, isto é, permite mudar como os caracteres são representados na memória, o que também determina os caracteres que podem ser exibidos. |
CHDIR | Usado para navegação entre diretórios. |
CHKDSK | Procura e repara problemas no disco local. |
CHKNTFS | Checa o sistema de arquivos NTFS. |
CHOICE | Detecta o pressionamento de uma única tecla pelo usuário. Esse comando é geralmente utilizado para construção de menus, apresentando opções que o usuário escolhe ao pressionar alguma tecla. |
CIPHER | Encripta ou tira a encriptação de arquivos/pastas. |
CLEANMGR | Automatiza a exclusão de arquivos. |
CLIP | Copia o resultado de um comando. |
CLS | Limpa a tela do CMD.* |
CMD | Abre uma nova instância do CMD dentro do CMD. Nessa janela podemos executar qualquer comando. |
CMDKEY | Gerência senha e nomes de usuários armazenados. |
COLOR | Muda a cor da fonte e do fundo do CMD. |
COMP | Compara o conteúdo de dois arquivos. |
COMPACT | Exibe ou altera a compactação de arquivos em partições NTFS. |
CONVERT | Converte um o sistema de arquivo do dispositivo de FAT ou FAT32 para NTFS. |
COPY | Copia um ou mais arquivos para outro local. |
CSVDE | Importar ou explorar dados do Active Directory para um arquivo. |
CURL | Transfere dados de ou para um servidor usando um de vários protocolos suportados. |
DATE | Exibe ou define a data.* |
DEFRAG | Desfragmentar o disco rígido. |
DEL | Exclui um ou mais arquivos.* |
DELPROF | Deleta perfis de usuário em computadores locais ou remotos. |
DIR | Exibe uma lista de arquivos e pastas do diretório atual.* |
DIRQUOTA | Cotas de disco do Gerenciador de recursos de servidor de arquivos. |
DISKPART | Administra discos, volumes ou partições. |
DISKSHADOW | Serviço de cópia de sombra de volume. |
DISM | Inicia o Manutenção e gerenciamento de imagens de implantação. |
DISPLAYSWITCH | Especifica qual monitor e qual utilizar. |
DNSCMD | Gerência servidores de DNS. |
DOSKEYE | Edite a linha de comando, recupere comandos e crie macros. |
DRIVERQUERY | Exibir drivers de dispositivos instalados. |
DSMGMT | Gerenciamento de serviços de diretório. |
ECHO | Exibe uma mensagem na tela.* |
ENDLOCAL | Terminar a localização do ambiente em um arquivo de lote.* |
ERASE | Exclui um ou mais arquivos.* |
EVENTCREATE | Adicionar uma mensagem para o registro de eventos do Windows. |
EXIT | Encerra a rotina ou script e define um valor para a variável ERRORLEVEL.* |
EXPAND | Descomprime arquivos Cabinet (CAB). Esses são arquivos comprimidos, identificados pela extensão .cab, que guardam informações de várias instalações do Windows que podem envolver drivers ou arquivos do sistema. |
FC | Compara dois arquivos. |
FIND | Procura por strings de texto em um arquivo. |
FINDSTR | Procura por um texto em um arquivo. |
FLTMC | Carregar, descarregar, listar e gerenciar drivers de filtro. |
FOR | Usado para executar um ou mais comandos para cada item em um conjunto.* |
FORFILES | Seleciona um arquivo (ou grupo de arquivo) e executa um comando para todos. |
FORMAT | Formatar um dispositivo. |
FREEDISK | Procura por espaço livre em disco. |
FSUTIL | Executa várias tarefas relacionadas aos sistemas de arquivo FAT e NTFS como gerenciar Reparse Points e Sparse Files, desmontar um volume, e extender um um volume. |
FTP | Protocolo de transferência de arquivos. |
FTYPE | Exibe ou modifica a relação entre um tipo de arquivo e um arquivo executável que deve abri-lo por padrão. Por exemplo, podemos definir o Chrome como o programa padrão para abrir documentos do tipo htmlfile.* |
GETMAC | Exibe o endereço de mac. |
GOTO | Muda a ordem de execução em um programa Batch, apontando um local rotulado em que os comandos que devem ser executados estão.* |
GPRESULT | Exibe as informações das Políticas de Grupo. |
GPUPDATE | Atualiza as configurações de Política de Grupo. |
HELP | Exibe uma lista de comandos disponíveis, ou mais detalhes sobre um comando especifico. Não funciona com todos os programas. Para estes, tente o comando /? (e.g., CMD /? ). |
HOSTNAME | Exibe o nome de host do computador. |
ICACLS | Muda as permissões de arquivo e pasta. |
IEXPRESS | Crie um arquivo ZIP de extração automática. Esse arquivo é um executável que contém um arquivo ZIP e um código que descomprime o(s) arquivo(s) desse arquivo ZIP. Para executar esse código, e assim obter os arquivos comprimidos, basta clicar sobre os arquivos .exe. |
IF | Executa um comando condicionalmente.* |
IPCONFIG | Exibe as configurações de IP da máquina. |
LABEL | Edita o rótulo de uma unidade. |
LODCTR | Atualiza os valores de registro relacionados aos contadores de desempenho. |
LOGMAN | Gerência registros. |
LOGOFF | Desconectar um usuário. |
MAKECAB | Cria um arquivo CAB. Este é um arquivo comprimido, como o ZIP. |
MANAGE-BDE | Configurar a Criptografia de Unidade de Disco BitLocker nos volumes de discos. |
MD | Cria um novo diretório.* |
MKDIR | Cria um novo arquivo.* |
MKLINK | Criar um link simbólico, um link físico, ou .*. |
MODE | Configura os dispositivos do sistema. |
MORE | Exibe textos no CMD sem que ultrapasse o espaço disponível na tela em um determinado momento. Uma vez que não há mais espaço, o CMD aguarda até que o usuário pressione enter. Rode HELP e depois HELP | MORE e compare o resultado. |
MOUNTVOL | Cria, exclui, ou lista um ponto de montagem de volume. |
MOVE | Move e renomeia arquivos e pastas.* |
MSG | Envia uma mensagem para um usuário. |
MSIEXEC | Fornece os meios para instalar, modificar e executar operações no Windows Installer a partir da linha de comando. |
MSINFO32 | Coleta informações sobre o PC e exibe uma visão abrangente do seu Hardware, componentes do sistema e ambiente de software. Pode aparecer a mensagem "Não foi possível coletar informações". Esse problema talvez possa ser resolvido resetando o repositório do WMI(Instrumentação de Gerenciamento do Windows). |
MSTSC | Permite logar um computador remoto usando o protocolo Remote Desktop Protocol (RDP). |
NET | Gerencia os recursos de rede. Podemos usá-lo para conectar ou desconectar o computador de um recurso compartilhado por um servidor, exibir informações de configuração do servidor, adicionar ou remover um computador de um domínio e etc. |
NETDOM | Gerencia domínios. |
NETSH | Exibe ou modifica as configurações de rede. |
NBTSTAT | Exibe as estatísticas de protocolo e as conexões TCP/IP atuais que usam NBT. |
NETSTAT | Exibe estatísticas de protocolo e conexões de rede TCP/IP atuais. |
NLTEST | Teste de localização de rede. |
NMBIND | Gerencia as ligações de rede Hyper-V. Note que o Hyper-V - um software para criação de máquinas virtuais - deve ser ativado nas versões suportadas do Windows para poder usá-lo. Procure instruções para o seu sistema operacional. |
NSLOOKUP | Pesquisa em um DNS (Domain Name Server) por um domínio (e.g., google.com) para encontrar o endereço de IP correspondente, ou procurar pelo endereço de IP para encontrar o domínio correspondente. |
NTBACKUP | Usado para executar funções de backup pelo CMD. |
NTDSUTIL | Usado para acessar e gerenciar o Active Directory do Windows. Disponível para computadores que possuem o as Ferramentas dos Serviços de Domínio Active Directory que fazem parte das Ferramentas de Administração de Servidor Remoto (RSAT), ou se você tiver o AD DS ou a função de servidor AD LDS. Microsoft recomenda que o NTDSutil seja usado por administradores experientes e requer que a ferramenta seja usada com o CMD no modo administrador. |
OPENFILES | Lista, consulta ou desconecta arquivos e pastas que foram abertos no sistemas. |
PATH | Exibe ou configura um conjunto de caminhos para programas executáveis que podem ser acesssados e executados através da linha de comando. |
PATHPING | Funciona como o comando TRACERT mas também informa sobre a latência da rede e perda de pacotes em cada salto. Um salto é a transmissão de um pacote (pedaço de informação) de um dispositivo para o outro até chegar ao destino determinado. |
PAUSE | Suspende o processamento do arquivo batch* |
PING | Testar uma conexão de rede. Se obter sucesso é retornado o endereço de IP. |
POPD | Retorna para um diretório previamente salvo pelo comando PUSHD .* |
POWERCFG | Gerencia as configurações do gerenciamento de energia do Windows. |
Imprime um arquivo usando uma impressora específica. | |
PRINTBRM | Backup / Recuperação / Migração da fila de impressão. |
PROMPT | Usado para customizar a aparência do texto que aparece antes dos comandos do CMD ou MS-DOS. Geralmente, o CMD ou o MS-DOS exibe caminho para a pasta onde ele está aberto, mas isso pode ser mudado para uma seta com esse comando, por exemplo. |
PSHD | Armazena o caminho para um diretório que pode ser referenciado pelo comando POPD. |
RASDIAL | Usado para iniciar ou finalizar uma conexão discada ou Virtual Network Connection (VPN). |
RD | Exclui um diretório*. |
RECOVER | Recupera informações legíveis de um disco danificado ou defeituoso. |
REG | Lê, cria, exporta, ou deleta valores e chaves do registro. Muito cuidado ao utilizar esse comando. O registro é uma parte fundamental do Windows e qualquer modificação mal calculada pode deixar seu sistema operacional inacessível. |
REGEDIT | Importa ou exporta configurações de registro de um arquivo de texto .reg. |
REGSVR32 | Registrar ou cancelar o registro de controladores OLE (Object Linking Embedded), como arquivos .DLL e .OCX. Quando esse comando registra um arquivo DLL, informações sobre arquivos de programa associados a ele são armazenadas no registro do Windows. Outros programas podem acessar essas informações a fim de saber onde os dados do programa estão e como interagir com eles. |
REGINI | Define ou altera permissões e valores do registro, |
REM | Adicionar um comentário em um arquivo Batch.* |
REN | Renomeia um ou mais arquivos. É a mesma funcionalidade do comando rename.* |
REPLACE | Troca ou atualiza um arquivo com um outro arquivo. |
RMDIR | Exclui um diretório.* |
ROBOCOPY | Usado para copiar arquivos e pastas de um lugar para o outro. Esse comando é superior ao COPY e XCOPY pois possui muito mais opções. |
ROUTE | Manipular tabelas de roteamento de rede. |
RUNAS | Executa um programa usando as credenciais de outro usuário |
RUNDLL32 | Executa um comando DLL (adiciona ou remove conexões de impressoras). Só funciona com arquivos DLL explicitamente criado para ser executado por esse comando. |
SC | Configura informações sobre serviços. |
SCHTASKS | Criar, excluir, consultar, alterar, executar e finalizar tarefas agendadas em um sistema local ou remoto. |
SET | Exibe, cria, ou remove variáveis de ambiente da seção atual.* |
SETLOCAL | Controla a visibilidade de variáveis de ambiente.* |
SETSPN | Gerência o Service Principal Name (SPN) para um Active Directory. |
SETX | Cria ou muda as variáveis de ambiente de usuário ou no ambiente do sistema. |
SFC | Verificar ou substituir arquivos importantes do sistema do Windows. |
SHIFT | Muda a posição de parâmetros substituíveis em um arquivo batch ou script.• |
SHUTDOWN | Desliga, reinicia, ou logoff do sistema atual ou computador remoto. |
SLMGR | Gerenciar o licenciamento de software |
SORT | Ler a entrada de dados, ordenar os dados, e retornar o resultado do ordenamento para a tela do CMD, para um arquivo, ou outro dispositivo de saída. |
SSH | Permite a conexão entre dois computadores de maneira segura. Pode ser usado para logar em um computador remoto, trocar arquivos entre a máquina local e a máquina remota, e também executar códigos na máquina remota., |
START | Inicia um programa, comando ou arquivo Batch.* |
SUBST | Associa um caminho com a letra de um drive. |
SYSMON | Monitora e registra a atividade do sistema no registro de evento do Windows. |
SYSTEMINFO | Exibe informações detalhadas sobre a configuração do computador local ou remoto e de seu sistema operacional. |
TAKEOWN | Usado por um administrador para recuperar o acesso, que havia sido negado, a um arquivo. |
TAR | Extrai arquivos ou cria um arquivo composto de dois ou mais arquivos. Por exemplo, podemos extrair os arquivos de um arquivo ZIP, e depois juntá-los em um só arquivo. |
TASKLIST | Lista aplicações e serviços sendo executados. |
TASKKILL | Interrompe a execução de um processo. |
TELNET | Usado para se comunicar com outro computador que utiliza o protocolo Telnet. Não está disponível por padrão no Windows mas pode ser ativado em Painel de Controle > Programas > Ativar ou Desativar Recursos do Windows. Marque a caixa para a opção "Cliente Telnet". |
TIME | Exibe ou determina a hora do sistema.* |
TIMEOUT | Atrasar o processamento de um arquivo Batch/comando. |
TITLE | Determina o título para a sessão do CMD.* |
TRACERT | Exibe os dispositivos intermediários entre o computador local e um computador remoto. |
TREE | Exibe de forma gráfica a estrutura de pastas. |
TSDISCON | Desconecta uma sessão remota. |
TSKILL | Interrompe um programa em execução. |
TYPE | Exibe o conteúdo de um arquivo de texto.* |
TYPEPERF | Exibe informações de performance no CMD ou guarda em um arquivo de registro específico. |
TZUTIL | Exibe ou configura o fuso horário atual do sistema. |
VER | Exibe informação sobre a versão do Windows.* |
VERIFY | Ativa ou desativa a habilidade do CMD ou MS-DOS de verificar se os arquivos foram salvos corretamente. |
VOL | Exibe o rótulo do disco.* |
VSSADMIN | Exibe os backups de cópia de sombra de volume atuais e todos os provedores e gravadores de cópia de sombra instalados. |
W32TM | Usado para diagnosticar problemas no Windows Time. |
WAITFOR | Esperar por ou enviar um sinal. |
WBADMIN | Inicia ou finaliza procedimentos de backup, exibe os detalhes de um backup anterior, lista o conteúdo de um backup, e reportar o status de um backup em processo. |
WECUTIL | Permite a criação e gerenciamento de assinaturas para eventos que são encaminhados por computadores com suporte ao protocolo WS-Management. |
WEVTUTIL | Inicia o Events Command-line Utility , que é usado para gerenciar registros de eventos e editores. |
WHERE | Usado para procurar por arquivos que apresentem um padrão específico. |
WHOAMI | Exibe o domínio ou nome de usuário atual. |
WINGET | Esse comando está previsto para Maio de 2021. Gerenciador de pacotes do Windows. Um gerenciador de pacotes facilita o processo de instalação de software na máquina. Bastando escrever o software necessário, e deixar o gerenciador encontrar, baixar e instalar a versão mais nova (ou a que foi especificado por você) do programa. |
WINRM | Inicia a versão de linha de comando do Window Remote Management, usado para gerenciar comunicação com computadores locais e remotos usando Web Services. |
WINRS | Permite gerenciar programas remotamente. |
WMIC | Inicia o Windows Management Instrumentation Command Line (WMIC), uma interface de script que simplifica o uso do Windows Management Instrumentation (WMI) e também de sistemas gerenciados pelo WMI. |
WPR | Registra eventos do sistema que então podem ser avaliados usando o Windows Performance Analyzer (WPA). |
WUSA | O Windows Update Standalone Installer utiliza oWindows Update Agent API para instalar pacotes de atualização. |
WUAUCLT | O Windows Update Automatic Update Client é usado para solucionar erros do Windows Update, e gerenciar as atualizações do Windows Update. |
XCOPY | Copia pastas e arquivos. |
Os comandos marcados por * são comandos internos do CMD. Esses comandos são construídos junto ao CMD; eles fazem parte do interpretador. Por esse motivo, eles estão sempre disponíveis.
Os outros são comandos externos. Esses comandos são na verdade programas separados que podem ser utilizados pelo CMD para performar alguma tarefa. Eles podem estar armazenados em qualquer parte do computador, mas para que estejam acessíveis pelo CMD o caminho até eles deve ser armazenado na variável de ambiente PATH.
Um exemplo de comando externo pode ser o CLIP
. Ao digitar esse comando e pressionar “enter”, o CMD precisa procurar por um programa chamado clip e executá-lo. Nesse caso, existe um programa clip.exe na pasta “System32” do Windows, cujo caminho é armazenado na variável PATH para que o CMD possa encontrá-lo.
Muitos softwares são baixados para ser usados como um comando no CMD, como o NodeJS ou o cwebp (um processador de imagens).
Resumo
O Batch Script é uma linguagem de programação que usamos para automatizar tarefas que serão executadas pela ferramenta de linha de comando do Windows, o CMD. Seu objetivo é facilitar a vida de quem usa o sistema operacional Windows.
Os comandos dessa linguagem podem ser digitados diretamente no interpretador, ou podem ser escritos separadamente em um arquivo com a extensão .cmd ou .bat . Uma vez criados, os arquivos podem ser executados a qualquer momento pelo usuário, ou de forma automatizada e programada.
Existem dezenas de comandos disponíveis para serem usados. Aqui listamos somente alguns deles. Para uma lista mais completa vale a pena ler a lista de comandos do Windows.