Prompt de Comando
Prompt de Comando do Windows
Introdução
Mesmo com a interface gráfica para praticamente tudo, muitas vezes pode valer mais a pena fazer uma coisa pelo prompt de comando do Windows, que nas versões 2000/XP/2003/Vista servem como um "emulador" de MS-DOS. Tanto manualmente (direto no prompt) como automaticamente, usando arquivos em lote (simples arquivos de texto com comandos, que serão executados na ordem em que aparecem ou com alguma regra, uma "programação em script", normalmente arquivos ".bat"). Imagine trocar as extensões de todos os arquivos .jpeg de uma pasta para .jpg. Fazer isso pelo Explorer lhe tomaria muito tempo, além de ser extremamente tedioso.
Além disso, quando você acessa o sistema remotamente, é possível administrar uma série de coisas via linha de comando (útil nas versões de servidor do Windows, por exemplo, onde não se tem acesso local e/ou não se pode usar recursos gráficos à vontade). Estarei aqui listando diversos comandos e comentários, que fui conhecendo ao longo da minha experiência com o Windows, em diversas fontes, como a própria vida e a ajuda do Windows, fóruns, sites de dicas.
Certamente, você conhece vários dos comandos que citarei, mas muitas pessoas podem não conhecer todos (e é claro, eu estou longe de conhecer todos). A base aqui será o Windows XP, o mais usado atualmente - e por muito tempo por aqui, até a efetiva migração dos usuários do Windows para o Vista.
Alguns comandos valem também nas versões 9x/Me, mas nesse texto não há a idéia de suportá-las; a maioria é referente ao Windows 2000 ou superior.
Abrindo uma sessão dele ("Iniciar > Executar > cmd") e clicando com o botão direito na barra de títulos, você pode configurar opções padrões para ele. Escolha "Padrões" no menu pop-up da barra de título, para definir as opções que serão válidas para todas as janelas do prompt.
Na aba "Opções" você pode escolher o tamanho do cursor, quantidade de itens no histórico de comandos e modos de edição, inclusive desativar o modo "Insert", que por padrão, "come" as letras ao digitar sobre outras. Na aba "Fonte", defina não necessariamente a fonte (ele suporta poucas, as "fontes de varredura"), mas sim o número de linhas e colunas da janela. Você pode, na aba "Layout" escolher a posição padrão da janela (uma distância fixa da esquerda e da parte superior da tela), e na aba "Cores", alterar as cores (trocando o fundo preto, por exemplo).
Todo mundo sabe, todavia, não custa lembrar:
- Tecle [ALT] esquerda + [ENTER] para alternar entre o modo tela cheia e janela. Vale também para programas que se abrem em tela cheia no ambiente de simulação do MS-DOS, como muitos jogos e programas de controle. Neste caso, normalmente a janela será minimizada, exibindo a área de trabalho, e o programa, pausado (sim, "pausado", diferentemente de minimizado, como ao minimizar uma janela... Estando minimizado, o programa no simulador de MS-DOS não estará sendo processado, por exemplo, um jogo ficará pardo até que a janela dele seja ativa novamente). Se algum programa modificou as configurações e o prompt sempre se abre em tela cheia ao ser chamado por outros programas, você pode alterar para a exibição em janela por padrão, na aba "Opções" da tela de opções comentada.
- Ao digitar um nome de arquivo, tecle [TAB] para completá-lo. Os nomes dos arquivos e pastas da pasta atual serão alternados, conforme você for teclando [TAB]. Para escolher um arquivo, apenas continue digitando o que você digitaria depois do nome dele, já preenchido. [TAB] avança entre os arquivos, e [SHIFT] + [TAB] volta na lista, "avançando para trás", útil em pastas que tenham muitos arquivos e subpastas :) Se você se arrepender de ter teclado [TAB] para completar um nome de arquivo e quiser continuar manualmente, simplesmente tecle [ESC].
- Nomes de arquivos com espaços? Nunca se esqueça de colocá-los entre aspas! Os espaços são separadores de parâmetros, passar nomes de arquivos sem aspas implica em indicar ao computador que as partes depois do espaço são novos parâmetros, e não uma continuação do nome do arquivo.
- Para copiar texto, clique com o botão direito na janela e escolha "Marcar". Arraste o mouse normalmente, tomando o cuidado de observar que ele seleciona em bloco de caracteres, e não em linha (como os editores de texto em geral). Estando com o texto selecionado, apenas clique com o direito na janela novamente (ou tecle [ENTER]), a seleção será desmarcada e o texto copiado. Para colar no prompt, infelizmente não vale o [CTRL] + [V], tem que clicar com o direito e escolher a opção "Colar" mesmo.
- É uma dica boba, mas vale comentar: use a barra de rolagem! Os comandos e saídas recentes vão ficando armazenados no prompt de comando. Muita gente, acostumada com as versões mais antigas do Windows, não sabem disso. Um meio de copiar tudo sem arrastar é usar o botão direito e escolher "Selecionar tudo", pois ele selecionará inclusive os resultados passados, de fora da exibição atual. Já que estamos aqui, não custa falar que o comando cls limpa a tela.
- As opções também podem ser acessadas pelo menu de controle da janela, caso você esteja sem mouse. Tecle [ALT] esquerda + [ESPAÇO] e use as setas de direção, para acessar as opções ou copiar texto. Útil ao rodar o Windows em modo seguro se você tiver um mouse serial, já que ele não carrega este dispositivo no modo de segurança.
- Você pode ver informações sobre um comando dando o comando:
help nomedocomando
- Ou chamando o comando com o parâmetro /? (vale para a maioria, mas não todos os programas, estamos falando aqui dos programas do próprio Windows)
- Se um comando demorar para terminar, você pode forçá-lo a parar teclando [CTRL] + [C], no prompt. Use com cuidado, especialmente se o programa usado editar arquivos ou estiver fazendo algo importante que possa comprometer dados do sistema ou do usuário.
- Use o comando prompt para personalizar o símbolo do prompt (tradicional ">"). Chame-o com /? para ver as opções disponíveis.
Uma revisão de conceitos e aglomerado de dicas:
- A listagem de arquivos com o comando dir pode ser melhorada, dando os parâmetros:
- /a : Exibir arquivos com o atributo definido. Por exemplo:
dir C:coisas /ahs
Para exibir os arquivos ocultos e de sistema. Use "a" em conjunto com outra letra: H = ocultos (hidden), S = sistema e R = somente leitura (read-only).
- /b : Não exibe resumo nem cabeçalho, deixando a visualização simples (ideal em muitas situações onde você quer apenas saber os nomes dos arquivos)
- /c : Exibe o separador de milhar nas indicações de tamanho de arquivo. Ele é o padrão, se você quiser ver os números sem o ponto, use /-c
- /d : Lista os arquivos por coluna.
- /l : Lista os nomes em letras minúsculas.
- /n : Exibe os nomes de arquivos à direita, padrão no Windows XP. Se você quiser os nomes à esquerda, dê /-n (mas nesse caso eles ficarão com o nome no formato 8.3).
- /a : Exibir arquivos com o atributo definido. Por exemplo:
- Use e abuse de caracteres curinga! Mas com cuidado. Por exemplo, copy C:*.exe copia todos os executáveis, e copy C:mar*.* copia todos os arquivos que começam com "mar". Pelo menos no XP, você pode usar em alguns outros comandos também. Por exemplo, ren *.jpeg *.jpg renomeará todos os arquivos de extensão .jpeg para .jpg, mantendo os nomes originais.
- Sobre os caracteres curinga, saiba que * substitui todos os caracteres possíveis, e ? apenas um. Por exemplo, arquiv* poderá trazer resultados como arquivo, arquivar, arquivamento... Já arquiv? Trará apenas resultados com uma única letra no lugar do ponto de interrogação, como arquivo, arquiva, etc.
- O xcopy copia arquivos e árvores de pastas. Útil no prompt, onde o copy é ineficiente para a maioria das tarefas com vários arquivos, e é bem diferente de copiar pastas usando um gerenciador de arquivos gráfico.
- O deltree apaga pastas com subpastas e todos os arquivos. Use com cuidado!
- O rd apaga pastas (diretórios). Muita gente se perde no prompt, tentando usar o del para apagar pastas. Por padrão, o rd só apaga pastas vazias. Com o parâmetro /s ele apaga pastas com qualquer coisa, vazias ou não, mas pergunta antes. Dando também o /q ele apaga a pasta sem perguntar nada.
- bootcfg
Exibe e permite alterar as opções de boot, o arquivo "boot.ini". Via interface, estas opções podem ser alteradas indo nas "propriedades do Meu Computador > guia Avançado > Inicialização e recuperação > Configurações". Executá-lo sem parâmetro faz com que ele exiba a lista dos sistemas cadastrados no boot.ini. Chame-o com /? para ver as opções. Você pode adicionar ou remover itens, além de alterar as opções deles.
- chkdsk
Conhecidíssimo, é o "scandisk". Nas versões 9x/Me do Windows ele recebeu o nome ScanDisk, mas no DOS e nos NTs ficou como chkdsk, de "check disk". Chame-o com /? para mais opções. Chamá-lo sem parâmetros inicia a verificação na unidade atual no modo somente leitura, onde ele não alterará os dados caso encontre erros.
- chkntfs
Exibe ou modifica a verificação de disco no momento da inicialização do Windows; permite agendar a verificação.
- defrag
Desfragmentador de disco, dentro do prompt de comando. Você pode chamá-lo com -a, para apenas analisar, -f para forçar a desfragmentação (mesmo que haja pouco espaço livre, cuidado!) e -v para a exibição detalhada do resultado. Antes do parâmetro, passe a unidade desejada, como em defrag C: Cuidado: os parâmetros para ele devem ser precedidos de um hífen (-) e não barra, como na maioria.
- diskpart
Como o nome sugere, permite modificar o particionamento dos discos. Ele abre um console dentro do prompt, e tem um prompt próprio. Use com cuidado, digite help no prompt dele para ver as opções. Digite exit para sair e voltar ao prompt normal.
- driverquery
Mostra informações sobre os drivers (de dispositivos e de sistemas de arquivos) instalados. Útil para solução de problemas, devido a geração do relatório. Chame-o com /? para ver mais opções.
- format
Formata discos (partições e/ou volumes previamente criados e montados) ou disquetes. Chame-o com /?, e cuidado ao executá-lo!
- label
Cria, altera ou exclui o nome do volume de um disco.
- pagefileconfig
Configura a memória virtual. Chame-o com /? para entender melhor. Via shell, isso é feito pelo caminho "propriedades do Meu Computador > guia Avançado > Desempenho > Configurações > Avançado > Memória Virtual > Alterar".
- fsutil
Coleção de ferramentas úteis, via prompt. Chame-o sem parâmetros, e ele listará os parâmetros suportados. Permite gerenciamento e visualização de diversas coisas: comportamento do sistema de arquivos, gerenciamento de cotas, informações dos volumes...
- gpresult
Exibe informações sobre as diretivas de grupo ativas (como algumas daquelas ativadas pelo "gpedit.msc").
- recover
Tenta recuperar arquivos danificados. Chame-o passando o nome do arquivo.
- reg
Manipula o registro. Você pode adicionar chaves e valores, exportá-las, editar valores... O uso exigirá um pouco de treino.
- schtasks
Gerencia as tarefas agendadas, permitindo adição/exclusão de tarefas. Via interface, isso pode ser feito pela pasta especial "Tarefas agendadas", do painel de controle. Um parecido é o at.
- shutdown
Permite desligar o sistema, local ou remoto. Chame-o com /? para mais informações, e com /s para desligar. Uma mensagem será exibida ao usuário, pedindo para fechar programas e salvar o trabalho. Essa mesma tela de desligamento é chamada quando ocorre um erro num processo essencial do Windows de forma inesperada (ou causado por um vírus/spyware). Uma dica é que o desligamento pode ser cancelado, enquanto não acabar o tempo. Chamando-o com /a o desligamento é cancelado, basta ser rápido :)
- systeminfo
O nome diz tudo :) Uma dica é redirecionar a saída para um arquivo de texto, usando systeminfo > C:info.txt, por exemplo. Uma das informações que mais gosto desse systeminfo é o "uptime", o tempo que o Windows está ligado.
- tasklist
Exibe as tarefas e processos em execução, informando o PID de cada um ("Process ID", Identificador de processo).
- taskkill
Mata tarefas. Você precisará fornecer o PID, obtido com o tasklist. Por exemplo, taskkill /pid 123456
Salvo algumas exceções, estarei deixando a descrição do comando fornecida pelo próprio Windows, normalmente ao chamá-lo com /?, e uma ampliada na explicação de alguns.
- assoc
Exibe ou modifica associações com extensões de arquivos. Chame-o com /? para ver as opções. Chamá-lo apenas com a extensão, permite remover a associação: assoc .txt, para remover a associação aos arquivos .txt. Isso pode ser feito no registro, na chave HKEY_CLASSES_ROOT, mas é mais rápido pelo prompt de comando, por exemplo, para remover associações indesejadas.
- ftype
Exibe ou modifica tipos de arquivos usados nas associações de extensão de arquivo. Definido um tipo, você pode usar o assoc para associar uma extensão a ele. Esse comando sem o assoc não vale para criar novas associações, e vice-versa.
- attrib
Permite alterar ou exibir os atributos dos arquivos. Muito útil para remover um atributo, especialmente de arquivos ocultos ou de sistema que você não esteja conseguindo apagar. Chamá-lo sem parâmetros exibe os atributos dos arquivos na pasta atual, que são identificados por letras (conforme já comentado: S = Sistema, H = Oculto, R = Somente Leitura, etc). Para remover um atributo, chame-o assim: attrib [-ATRIBUTO] arquivo Por exemplo, para remover o atributo somente leitura e de sistema, ficaria: attrib -h -s C:boot.ini. Para adicionar um atributo, use + em vez de -.
- cacls
Exibe ou modifica as listas de controle de acesso (ACLs) de arquivos. São as "permissões" dos arquivos, em partições NTFS. Via shell, elas podem ser exibidas e alteradas na guia "Segurança" das propriedades dos arquivos, pastas e volumes. Aproveitando, vale lembrar... No Windows XP, a guia "Segurança" não é exibida por padrão nas propriedades dos arquivos, visto que ele foi um NT "domesticado", mesmo na versão profissional. Para que ela apareça (essa guia), desmarque o item "Usar compartilhamento simples de arquivo" na aba "Modos de exibição" das opções de pasta.
- chcp
Exibe ou define o número da página de código ativa.
- comp
Compara o conteúdo de dois arquivos ou conjuntos de arquivos. Chame-o passando os nomes dos dois arquivos como parâmetros.
- compact
Exibe informações dos arquivos compactados (em partições NTFS) na pasta atual. Chame-o com /? para mais informações; ele permite também compactar e descompactar os arquivos.
- convert
Permite converter partições FAT/FAT32 em NTFS. O caminho de volta é irreversível, só se reformatar a partição. Chame-o basicamente assim: convert X: /fs:ntfs. Por padrão, os arquivos existentes serão atribuídos aos administradores, e usuários limitados não terão direitos completos sobre todos eles. Chamando-o com /NoSecurity, ele configura as permissões para todos os usuários - visto que no FAT não há controle de acesso, ao passar para NTFS, a alguém deverão ser atribuídos os arquivos existentes ;)
- diskcomp
Compara o conteúdo de dois disquetes (quem vai usar isso hoje?).
- diskcopy
Copia o conteúdo de disquetes.
- exit
Sai do prompt de comando, ou do programa aberto no prompt. Em alguns programas pode ser quit.
- fc
Compara dois arquivos ou conjuntos de arquivos e exibe as diferenças entre eles.
- find
Localiza uma seqüência de texto em um ou mais arquivos.
- findstr
Procura seqüências de caracteres em arquivos. É diferente do find, chame-os com /? para ver.
- graftabl
Permite ao Windows exibir caracteres estendidos no modo gráfico.
- hostname
Permite alterar o nome do computador. Via shell, isso é feito na aba "Nome do computador", nas propriedades do "Meu computador".
- ipconfig
Exibe informações das configurações IP, mostrando o endereço IP, gateway e máscara de sub-rede para cada placa de rede:
- mode
Configura os dispositivos de sistema. Útil para dispositivos seriais antigos, ou mesmo novos que usem conexão serial e que precisem de ajustes adicionais.
- more
Exibe a saída do prompt, fazendo pausa a cada tela, útil para textos longos que rolam a tela sem que você consiga ler. Mas não se esqueça da barra de rolagem, às vezes pode ser melhor deixar a saída aparecer por completo e depois rolar a tela para cima.
- path
Exibe ou define um caminho de pesquisa para arquivos executáveis (ou outros dependentes, como dlls, arquivos OCX compartilhados, etc). Via shell, os caminhos podem ser alterados pelo botão "Variáveis de ambiente", da aba "Avançado" da tela das propriedades do "Meu Computador". No NT, esses caminhos estão no registro, na chave "Path" da "HKEY_CURRENT_USER > Environment", para o usuário atual, e "HKEY_LOCAL_MACIHNE > Environment", para todos os usuários.
- ping
Dispara contra um computador ou host e espera receber dados, usado para ver se a conexão está ativa, entre outras informações. Chame-o com /?, existem vários parâmetros.
- replace
Substitui arquivos. Use com cuidado, leia atentamente as instruções dando o parâmetro /?.
- set
Exibe ou define, e permite remover as variáveis de ambiente do Windows. Veja o comentário do parâmetro path, mais acima, sobre a localização delas.
- sort
Esse é interessante, permite ordenar linhas em arquivos. Seu uso é bem detalhado, chame-o com /? para entendê-lo.
- start
Abre uma nova janela do prompt. Chame-o passando um comando como parâmetro, para que seja aberto um novo prompt com o programa já em execução, sem interromper o atual.
- subst
Associa um caminho a uma letra de unidade. Isso permite criar "atalhos" para pastas, na forma de letras, que aparecerão no "Meu computador". Por exemplo, subst Z: \servidorpasta1 permite mapear a unidade. Você pode fazer também com pastas locais, como subst X: C:coisasx.
- tree
Exibe de forma gráfica e hierárquica a estrutura de pastas de uma unidade ou caminho. Pode ser bem interessante, veja:
- type
Exibe o conteúdo de um ou mais arquivos de texto, basicamente para lê-lo.
- ver
Mostra a versão de Windows. Para informações mais detalhadas (como o tipo de versão, Server, Home, Professional, Business, Enterprise, etc) prefira o comando gráfico, winver, que mostra a mesma tela "Sobre o Windows" acessível também pelo menu "Ajuda > Sobre..." das janelas de pasta do Explorer.
- verify
Faz com que o interpretador de comandos verifique ou não se seus arquivos foram gravados corretamente no disco. Ative ou desative a verificação passando como parâmetro, respectivamente, on e off.
- vol
Exibe o nome e o número de série do disco, caso existam.
- typeperf
Grava dados de desempenho na janela de comando ou em um arquivo de log. Para interromper, pressione CTRL+C.
Úteis em arquivos de lotes (.bat):
- echo
Exibe descrições ou avisos, ou impede a exibição dos comandos na tela, quando usado em arquivos de lotes.
- call
Chama um programa em lotes a partir de outro, útil basicamente para usar 'arquivos de inclusão" em arquivos .bat.
- for
Executa um comando especificado para cada arquivo em um conjunto de arquivos. Útil em arquivos de lotes, mas dependendo do que você quer fazer, pode valer muito também no prompt. Chame-o com /? par ver a ajuda, tem o estilo do "for" em programação.
- goto
Direciona o interpretador de comando para uma linha com um rótulo em um programa em lotes.
- pause
Pausa o processamento de um programa em lotes e exibe a mensagem "Pressione qualquer tecla para continuar...". Útil para dar explicações ou avisos, abusando antes do comando echo.
- pushd
Armazena a pasta atual para uso pelo comando POPD, depois altera para a pasta especificada. Pode ser útil tanto em arquivos de lotes como diretamente no prompt.
- popd
Altera para a pasta armazenada pelo comando PUSHD.
- rem
Registra comentários em um arquivo em lotes.
- setlocal
Inicia a localização das alterações de ambiente em um arquivo em lotes. As alterações de ambiente feitas após SETLOCAL ser emitido são específicas do arquivo em lotes. ENDLOCAL deve ser emitido para restaurar as configurações anteriores. Quando o final de um script em lotes é alcançado, um ENDLOCAL é executado para qualquer comando SETLOCAL pendente emitido por esse script em lotes.
- endlocal
Termina a localização das alterações de ambiente em um arquivo em lotes. As alterações de ambiente feitas após ENDLOCAL ser ativado não são específicas do arquivo em lotes; as configurações anteriores não serão restauradas na finalização do arquivo em lotes.
- shift
Altera a posição dos parâmetros substituíveis em um arquivo em lotes.
- title
Altera o título da janela do prompt. Útil em arquivos em lotes, você pode definir seu nome ou o nome da sua "aplicação", ou mesmo o status, de forma visível para o usuário.
Mais comandos ainda!
Esses são válidos para as versões não-domésticas do Windows. Diversos deles podem ser configurados via interface gráfica, através dos consoles do gerenciamento do computador. Uma boa idéia é usar o recurso de pesquisa do sistema, e mandar buscar por *.msc dentro da pasta do Windows.
- eventcreate
Permite que um administrador crie uma mensagem e identificação de evento personalizadas em um log de eventos especificado (que poderá ser vista juntamente com as mensagens dos programas, pelo eventvwr, o visualizador de eventos). Pode ser inútil em casa, mas dependendo do servidor ou ambiente corporativo, algumas ações podem ser logadas dessa forma, para que outros administradores tenham acesso depois.
- eventquery
Exbe os eventos ou as propriedades de um evento de um ou mais arquivos de log.
- eventtriggers
Permite que um administrador exiba e configure 'Disparadores de eventos' em sistemas locais ou remotos.
- getmac
Permite que um administrador exiba o endereço MAC de adaptadores de rede em um sistema.
- logman
Gerencia o serviço 'Logs e alertas de desempenho' para a criação e gerenciamento de logs de sessão de rastreamento de eventos e logs de desempenho. Chame-o com /?, pois são tantos os parâmetros suportados...
- openfiles
Permite que um administrador liste ou desconecte arquivos e pastas que foram abertos em um sistema. Isso pode ser feito graficamente pelo "fsmgmt.msc", que também exibe todos os compartilhamentos locais ou remotos.
- prncnfg
Permite configurar ou mostrar as configurações de impressoras.
- prndrvr
Adiciona, exclui e exibe os drivers de impressoras.
- prnjobs
Permite controlar tarefas de impressão, como pausa ou cancelamento dos documentos na fila de impressão.
- prnmngr
Permite adicionar, excluir e listar as impressoras conectadas, além da padrão.
- prnport
Cria, exclui e lista portas de impressoras TCP/IP.
- prnqctl
Imprime uma página de teste, ou pausa ou reinicia um documento a ser impresso.
Mesmo assim, boa parte dos outros só existem nas versões não domésticas do Windows (ou seja, excluindo-se as edições Home e Starter). Alguns dos comandos apresentados devem ser executados como administrador, especialmente os que alteram configurações globais do sistema. Bom trabalho!