Como abro um programa através do prompt de comando no Windows 8?


17

Suponha que eu tenha um programa chamado any_program.exee minha unidade do sistema operacional seja C:. A localização do programa éD:\Any_Folder\any_program.exe

Como inicio / executo esse programa via prompt de comando no Windows 8?

Eu tentei a linha de comando START any_program.exe, mas isso mostra um erro que

O Windows não consegue encontrar 'any_program.exe'. Digite o nome corretamente e tente novamente.

A propósito, funcionou perfeitamente no Windows 7. E, se eu digitar START notepad.exeou START firefox.exe(o Firefox não estiver instalado na unidade C:), ele funcionará no Windows 8.


Isso realmente não tem nada a ver com o Windows 8 em particular, não é?
Joey

Eu acho que sim. No Windows 7, apenas o caminho teria funcionado. Mas no Windows 8, o caminho do programa deve estar entre aspas (o que eu descobri) ou mostra um erro que não foi possível localizar o programa (se o caminho não estiver registrado na variável de ambiente PATH ou em Registro do aplicativo).
Ahmadul Hoq

2
@AhmadulHoq O Windows 7 se comporta exatamente da mesma maneira, tanto quanto eu sei. Você provavelmente tinha o arquivo em um desses lugares.
Bob

Respostas:


24

Existem três maneiras básicas de executar um 'comando' no prompt de comando.

  • builtins ( "comandos internos" )

    Esses são comandos criados no próprio cmd e não requerem uma chamada de programa externo. Eles também não realizam nenhuma pesquisa e sempre serão executados com a mais alta prioridade, se corresponderem. Você pode ignorar built-in colocando o nome do executável entre aspas: echochama o built-in, mas "echo"pesquisaria as seguintes regras de cmd.

  • Chamada direta

    É quando você especifica diretamente um nome de programa (sem um caminho). Por exemplo, se você executar cmd( cmd.exe) ou ipconfig( ipconfig.exe) no prompt, estará chamando diretamente o comando externo. Isso realiza uma pesquisa limitada implementada inteiramente no prompt de comando, nesta ordem:

    • O diretório atual.
    • Os diretórios listados na variável de ambiente PATH.

    (graças a dxiv pelos comentários)

  • Através do startcomando

    Quando você tenta executar um arquivo por meio do startcomando, o Prompt de Comando não realiza nenhuma pesquisa. Em vez disso, ele passa o nome do arquivo (e os argumentos) para o próprio Windows (por meio da ShellExecuteExchamada da API), que deve procurar o local do arquivo. Existem vários locais que ele pesquisa na seguinte ordem:

    • Diretório de trabalho atual
    • Diretório do Windows
    • Diretório Windows \ System32
    • Diretórios listados na variável de ambiente PATH
    • Caminhos de aplicativo definidos pelo registro

    Observe que a caixa de diálogo Executar também usa esse método de pesquisa.


Normalmente, você pode navegar para o local do arquivo com cd /d D:\Any_Folder( /dsignifica mudar de unidade) e apenas executar any_program.exe. Como alternativa, você pode especificar o caminho completo D:\Any_Folder\any_program.exe.

Se você deseja iniciar start any_program.exe, você tem algumas opções:

  • Você pode colocá-lo nos diretórios Windows ou System32 ou em qualquer diretório da variável de ambiente PATH.
  • Você pode adicionar o diretório em que está localizado ( D:\Any_Folder) à variável de ambiente PATH; consulte esta pergunta para obter detalhes.
  • Você pode adicioná-lo à chave de registro App Paths, como o Bloco de Notas e o Firefox. Caminhos do aplicativo vincula uma palavra-chave do arquivo (como firefox.exe) ao caminho completo do arquivo, diferente das outras opções que lidam com diretórios. Veja aqui para mais informações.

3
Para garantir a integridade, observe que a execução de um programa no prompt de comando diretamente, como any_program.exenão pesquisa a tecla App Paths, enquanto o executa, por start any_program.exeexemplo, em uma instalação padrão do Win7, a inserção wordpadno prompt gera um not recognizederro e start wordpadinicia com êxito o wordpad ( com base na chave Caminhos do aplicativo). O motivo técnico é que a página vinculada se refere ao ShellExecuteEx (que startusa) enquanto CreateProcess (que a execução direta usa) menciona especificamente que os Caminhos do Aplicativo não são pesquisados.
dxiv

@dxiv Obrigado. Acontece que a chamada direta via cmd apenas pesquisa nos diretórios cwd e PATH-listados. Vou alterar em breve.
Bob

11
Obrigado, isso foi rápido em um comentário tardio de três anos ;-) O link do docs relevante é msdn.microsoft.com/en-us/library/windows/desktop/ms682425.aspx, mas não tenho espaço para incluí-lo no comentário anterior. A lógica de pesquisa está listada em # 1-6 em lpCommandLine.
Dxiv

11
@dxiv Obrigado pelo link. Também editei isso em, embora ele não pareça corresponder ao meu comportamento observado ... (tente: set path=seguido de cmdnão consegue encontrá-lo, mas start cmdfunciona, pois ainda pesquisa caminhos fora do env var).
Bob

11
Obrigado pela verificação dupla. De fato, a execução direta do cmd não pesquisa os diretórios do sistema / janelas por padrão, e eu errei ao apontar para os documentos CreateProcess. Parece que o cmd tem sua própria lógica, de acordo com a seção "Command Search Sequence", em technet.microsoft.com/en-us/library/…, que remonta pelo menos às vezes no NT e, provavelmente, para sempre.
Dxiv

7
start D:\Any_Folder\any_program.exe

ou, quando o caminho ou o arquivo contiver espaços

start "" "D:\Any_Folder\any_program.exe"

start any_program.exefunciona apenas para os programas localizados na %PATH%variável de ambiente ou registrados no registro na chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Pathsou em seu HKEY_CURRENT_USERanálogo.


5

Você tem duas opções:

  1. Adicione o programa à sua %PATH%variável
  2. Use aspas no seu atalho

Detalhe:

Adicionando any_program.exeao caminho:

  1. Vá para "Painel de Controle" -> "Configurações Avançadas do Sistema"
    Configurações avançadas do sistema
  2. Vá para a guia Avançado
    Configurações do sistema

  3. Clique em "Variáveis ​​de ambiente" Adicione a pasta na qual o any_program.exe reside. Edite a variável PATH e adicione a pasta no final, separada por um;
    variável de caminho

  4. Agora você pode usar any_program.exe na caixa de diálogo Executar (tente fazer logoff e logon novamente para garantir que as alterações nas variáveis ​​de caminho sejam usadas.)

Usando caminho completo

Em vez de usar any_program.exena caixa de diálogo Executar, você precisa usar o PATH completo. Então, digite D:\Stuff\App\any_program.exea caixa de diálogo Executar.


essas imagens são WAAAY para grandes. Se importa de tê-los em um tamanho razoável?
Journeyman Geek

Trabalhando nisso ...
Nemo

Diretórios PATH no Windows são delimitados por ponto e vírgula ( ;), não-pontos ( :) ...
Bob

Eu tinha isso em mente, mas ainda assim o digitei errado.
Nemo

Capturas de tela tiradas de c-sharpcorner.com/UploadFile/6cde20/… aparentemente. As capturas de tela são terríveis
Journeyman Geek

1
  1. Prompt de Comando Aberto
  2. Digite o nome do programa que você deseja executar. Se estiver na variável PATH System, ela será executada. Caso contrário, você precisará digitar o caminho completo para o programa. Por exemplo, para executar D: \ Any_Folder \ any_program.exe, digite D: \ Any_Folder \ any_program.exe no prompt de comando e pressioneEnter

Haha bom truque!
Ahmadul Hoq

1

Eu estou usando um método ainda simples. . .
Copie o atalho do arquivo para C: \ users \ name e digite o nome do atalho na caixa de diálogo Executar. . . . .


0

Eu acho que você tem que adicionar o caminho para a variável PATH nas variáveis ​​do sistema


0

Use o CMD para fazer isso em vez da GUI.

  1. Disponibilizando o local do arquivo executável no CMD, ou seja, criando uma PATHvariável:

    Por exemplo:

    • Cenário: você deseja abrir o Acrobat a partir do CMD
    • SET PATH: No tipo CMD

      SET ACROBAT="C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat"
      
  2. Executando o arquivo do CMD:

    No tipo CMD:

    START ACROBAT
    

É isso aí !!!
Eu espero que isso tenha sido útil.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.