Visão geral sobre o shell de comando
O shell de comando é um software independente que oferece comunicação direta entre o usuário e o sistema operacional. A interface de usuário não gráfica do shell de comando é o ambiente propício para a execução de aplicativos e utilitários baseados em caracteres. O shell de comando executa programas e exibe os dados de saída em uma tela usando caracteres individuais de forma idêntica ao interpretador de comandos do MS-DOS, o Command.com. O shell de comando do Microsoft Windows utiliza o interpretador de comandos Cmd.exe, que carrega aplicativos e direciona o fluxo de informações entre aplicativos, para transformar entradas de usuário em um formato que possa ser compreendido pelo sistema operacional.
Você pode usar o shell de comando para criar e editar arquivos em lotes (também denominados de scripts) e, assim, automatizar tarefas rotineiras. Por exemplo, você pode usar scripts para automatizar o gerenciamento de contas de usuários ou backups noturnos. Você também pode usar o Microsoft Windows Script Host, CScript.exe, para executar scripts mais sofisticados no shell de comando. O uso de arquivos em lotes possibilita a realização de operações mais eficientes do que através da interface do usuário. Os arquivos em lotes aceitam todos os comandos disponíveis na linha de comando. Para obter mais informações sobre arquivos em lotes, consulte Usando arquivos em lotes.
Você pode personalizar a janela do prompt de comando para obter uma melhor visualização e aumentar o controle sobre como são executados os programas. Para obter mais informações sobre a personalização da janela do prompt de comando, consulte Para configurar o prompt de comando.
Usando a sintaxe dos comandos
A sintaxe indica a ordem na qual você deve digitar um comando e seus parâmetros. O exemplo a seguir do comando xcopy ilustra diversos formatos de texto de sintaxe:
xcopy Origem [Destino] A tabela a seguir explica como interpretar os diversos formatos de texto.XOX
Você pode executar diversos comandos a partir de uma única linha de comando ou script usando símbolos de processamento condicional. Quando você executa diversos comandos com símbolos de processamento condicional, os comandos à direita do símbolo atuam com base nos resultados do comando à esquerda do símbolo de processamento condicional. Por exemplo, se você quiser executar um comando somente quando o comando anterior falhar. Ou, se quiser executar um comando somente quando o comando anterior tiver sido executado corretamente.
Você pode usar os caracteres especiais listados na tabela a seguir para passar vários comandos.
Você pode aninhar shells de comandos no Cmd.exe abrindo uma nova instância do Cmd.exe no prompt de comando. Por padrão, cada instância do Cmd.exe herda o ambiente do aplicativo Cmd.exe pai. Ao aninhar instâncias do Cmd.exe, você poderá fazer alterações no ambiente local sem afetar o aplicativo pai do Cmd.exe. Isso permite preservar o ambiente original do Cmd.exe e retornar a ele depois de encerrar o shell de comando aninhado. As alterações efetuadas no shell de comando aninhado não são salvas.
Para aninhar um shell de comando, no prompt de comando, digite:
cmd
Será mostrada uma mensagem idêntica a que se segue: Para fechar o shell de comando aninhado, digite exit.
Você pode limitar ainda mais a pesquisa das alterações em uma instância do Cmd.exe (ou em um script) usando os comandos setlocal e endlocal. Setlocal cria um escopo local e endlocal encerra o escopo local. Quaisquer alterações efetuadas dentro do escopo setlocal e endlocal serão eliminadas, deixando assim o ambiente original inalterado. Você pode aninhar esses dois comandos até um máximo de 32 níveis. Para obter mais informações sobre os comandos setlocal e endlocal, consulte Setlocal e Endlocal.
O ambiente do shell de comando Cmd.exe é definido por variáveis que determinam o comportamento do shell de comandos e do sistema operacional. Você pode definir o comportamento do ambiente do shell de comando ou de todo o ambiente do sistema operacional usando dois tipos de variáveis de ambiente: de sistema e local. As variáveis de ambiente de sistema definem o comportamento do ambiente do sistema operacional global. As variáveis de ambiente locais definem o comportamento do ambiente da instância atual do Cmd.exe.
As variáveis de ambiente de sistema encontram-se presentes no sistema operacional e disponíveis a todos os processos do Microsoft Windows. Somente usuários com privilégios administrativos podem alterar variáveis de sistema. Essas variáveis são usadas com mais frequência em scripts de logon.
As variáveis de ambiente locais só ficam disponíveis quando o usuário para o qual elas são criadas encontra-se conectado com o computador. As variáveis locais definidas na seção HKEY_CURRENT_USER só serão válidas para o usuário atual, mas definem o comportamento do ambiente do sistema operacional global.
A lista a seguir descreve os diversos tipos de variáveis em ordem decrescente de precedência:
No shell de comando, cada instância do Cmd.exe herda o ambiente de seu aplicativo pai. Portanto, você pode alterar as variáveis no novo ambiente Cmd.exe sem afetar o ambiente do aplicativo pai.
A tabela a seguir lista as variáveis de ambiente de sistema e locais do Microsoft Windows.
Use o comando set para criar, alterar, excluir ou mostrar variáveis de ambiente. O comando set altera variáveis somente no ambiente shell atual.
Para mostrar uma variável, no prompt de comando, digite:
set nome_da_variável
Para adicionar uma variável, no prompt de comando, digite:
set variablename=valor
Para excluir uma variável, no prompt de comando, digite:
set nome_da_variável=
Você pode usar a maioria dos caracteres como valores de variáveis, mesmo o espaço em branco. Se forem usados caracteres especiais <, >, |, &, ou ^, use o caractere de escape ou aspas antes deles. Se usar aspas, elas serão incluídas como parte do valor porque tudo que segue o sinal de igual é entendido como valor. Considere os seguintes exemplos:
set varname=novo^&nome
set varname="novo&nome"
Os nomes de variáveis não diferenciam maiúsculas de minúsculas. Porém, set exibe a variável exatamente da forma como tiver sido digitada. Você pode combinar letras maiúsculas e minúsculas nos nomes das variáveis para tornar o código mais legível (por exemplo, NomeDoUsuário).
Para permitir a substituição de valores de variáveis na linha de comando ou em scripts, coloque o nome da variável entre símbolos de porcentagem (ou seja, %nome_da_variável%). Ao usar os símbolos de porcentagem, você garante que o Cmd.exe faça referência aos valores das variáveis em vez de fazer uma comparação literal. Depois de definir valores de variável para um nome de variável, coloque o nome da variável entre símbolos de porcentagem. O Cmd.exe tenta localizar todas as instâncias do nome da variável e substitui-lo pelo valor de variável definido. Por exemplo, se você criar um script que contenha valores diferentes (por exemplo, nomes de usuários) e quiser definir a variável de ambiente USERNAME para cada usuário com esses valores, você poderá gravar um script usando a variável USERNAME entre símbolos de porcentagem. Quando você executa esse script, o Cmd.exe substitui %USERNAME% pelos valores das variáveis, o que elimina a necessidade de executar essa tarefa manualmente para cada usuário. A substituição de variáveis não é recursiva. O Cmd.exe verifica as variáveis uma vez. Para obter mais informações sobre substituição de variáveis, consulte For e Call.Usando diversos comandos e símbolos de processamento condicional
Caractere
Sintaxe
Definição
& [...]
comando_1 & comando_2
Use para separar vários comandos em uma linha de comando. O Cmd.exe executa o primeiro comando e, em seguida, o segundo.
&& [...]
comando_1 && comando_2
Use para executar o comando posterior ao && somente se o comando anterior ao símbolo tiver sido executado corretamente. O Cmd.exe executa o primeiro comando e somente executará o segundo se o primeiro tiver sido concluído com êxito.
|| [...]
comando_1 || comando_2
Use para executar o comando posterior ao || somente se o comando anterior ao || falhar. O Cmd.exe executa o primeiro comando e somente executará o segundo se o primeiro tiver sido concluído com êxito (recebe um código de erro superior a zero).
( ) [...]
(comando_1 & comando_2)
Use para agrupar ou aninhar vários comandos.
; ou ,
comando_1 parâmetro_1;parâmetro_2
Use para separar parâmetros do comando. Importante:
Aninhando Shells de comandos
Microsoft (R) Microsoft Windows (TM)
(C) Copyright 1985-2001 Microsoft Corp.Usando variáveis de ambiente com Cmd.exe
Variável
Tipo
Descrição
%ALLUSERSPROFILE%
Local
Apresenta a localização de todos os perfis de usuários.
%APPDATA%
Local
Apresenta a localização onde os aplicativos armazenam dados por padrão.
%CD%
Local
Apresenta a sequência da pasta atual.
%CMDCMDLINE%
Local
Apresenta a linha de comando exata usada para iniciar o Cmd.exe atual.
%CMDEXTVERSION%
Sistema
Apresenta o número de versão das extensões do Processador de comandos atual.
%COMPUTERNAME%
Sistema
Apresenta o nome do computador
%COMSPEC%
Sistema
Apresenta o caminho exato até o executável do shell de comando.
%DATE%
Sistema
Apresenta a data atual. Usa o mesmo formato que o comando date /t. Gerado por Cmd.exe. Para obter mais informações sobre o comando date, consulte Date.
%ERRORLEVEL%
Sistema
Apresenta o código de erro do último comando usado. Um valor diferente de zero geralmente indica um erro.
%HOMEDRIVE%
Sistema
Apresenta a letra da unidade da estação de trabalho local que está conectada à pasta base do usuário. Definida com base no valor da pasta base. A pasta base do usuário é especificada em Usuários e grupos locais.
%HOMEPATH%
Sistema
Apresenta o caminho completo da pasta base do usuário. Definido com base no valor da pasta base. A pasta base do usuário é especificada em Usuários e grupos locais.
%HOMESHARE%
Sistema
Apresenta o caminho de rede até a pasta base compartilhada do usuário. Definido com base no valor da pasta base. A pasta base do usuário é especificada em Usuários e grupos locais.
%LOGONSEVER%
Local
Apresenta o nome do controlador de domínios que validou a sessão de logon atual.
%NUMBER_OF_PROCESSORS%
Sistema
Especifica o número de processadores instalados no computador.
%OS%
Sistema
Apresenta o nome do sistema operacional. o Microsoft Windows exibe o sistema operacional como Microsoft Windows_NT.
%PATH%
Sistema
Especifica o caminho de pesquisa para arquivos executáveis.
%PATHEXT%
Sistema
Apresenta uma lista de extensões de arquivos que o sistema operacional considera como executáveis.
%PROCESSOR_ARCHITECTURE%
Sistema
Apresenta a arquitetura do chip do processador. Valores: x86, IA64.
%PROCESSOR_IDENTFIER%
Sistema
Apresenta uma descrição do processador.
%PROCESSOR_LEVEL%
Sistema
Apresenta o número do modelo do processador instalado no computador.
%PROCESSOR_REVISION%
Sistema
Apresenta o número de revisão do processador.
%PROMPT%
Local
Apresenta as configurações do prompt de comando do intérprete atual. Gerado pelo Cmd.exe.
%RANDOM%
Sistema
Apresenta um número decimal aleatório entre 0 e 32767. Gerado pelo Cmd.exe.
%SYSTEMDRIVE%
Sistema
Apresenta a unidade que contém a pasta raiz do Microsoft Windows (ou seja, a raiz do sistema).
%SYSTEMROOT%
Sistema
Apresenta a localização da pasta raiz do Microsoft Windows.
%TEMP% e %TMP%
Sistema e usuário
Apresenta as pastas temporárias padrão usadas pelos aplicativos disponíveis aos usuários que estiverem conectados no momento. Alguns aplicativos exigem TEMP e outros TMP.
%TIME%
Sistema
Apresenta a hora atual. Usa o mesmo formato do comando time /t. Gerado pelo Cmd.exe. Para obter mais informações sobre o comando time, consulte Time.
%USERDOMAIN%
Local
Apresenta o nome do domínio que contém a conta do usuário.
%USERNAME%
Local
Apresenta o nome do usuário conectado no momento.
%USERPROFILE%
Local
Apresenta a localização do perfil do usuário atual.
%WINDIR%
Sistema
Apresenta a localização da pasta do sistema operacional. Definindo variáveis de ambiente
"'nome' não é reconhecido como um comando interno ou externo, nem como programa operável ou arquivo em lotes."
Importante:
Substituindo valores de variáveis de ambiente