fonte do arquivo executável para linha de comando

2

Quais são as "fontes" onde a linha de comando no windows (xp na minha instância) está procurando comandos para executar? Quero dizer que eu escrevo, por exemplo, "java" na linha de comando e, em seguida, ele executa java.exe, que é encontrado em algum diretório listado na propriedade PATH do sistema / evnironment (você pode listá-lo ou configurá-lo com o comando "SET PATH"). Existe alguma outra fonte para esta pesquisa? Se sim onde? e como posso configurá-lo?

Estou perguntando porque tenho casos em que o comando não parece estar em nenhum dos diretórios do PATH e apesar disso, ele executa esse comando (de algum lugar ..).

Muito obrigado.

    
por Michal Bernhard 12.06.2009 / 12:30

4 respostas

3

De acordo com a Documentação MSDN para o CreateProcess que está no final chamado para iniciar o aplicativo

  1. O diretório do qual o aplicativo foi carregado.
  2. O diretório atual do processo pai.
  3. O diretório do sistema Windows de 32 bits. Use a função GetSystemDirectory para obter o caminho deste diretório.
  4. O diretório do sistema Windows de 16 bits. Não existe nenhuma função que obtenha o caminho desse diretório, mas é pesquisada. O nome desse diretório é System.
  5. O diretório do Windows. Use a função GetWindowsDirectory para obter o caminho desse diretório.
  6. Os diretórios listados na variável de ambiente PATH. Observe que essa função não pesquisa o caminho por aplicativo especificado pela chave do Registro Paths do Aplicativo. Para incluir esse caminho por aplicativo na seqüência de pesquisa, use a função ShellExecute.

Em relação ao ponto 6. a documentação da função ShellExecute não descreve quando a chave de Caminhos do Aplicativo é processada.

    
por 12.06.2009 / 23:50
3

Além da variável PATH, os caminhos de aplicativos específicos podem ser configurados no registro.

Se você der uma olhada nos caminhos HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ App, poderá ver como isso é feito.

    
por 12.06.2009 / 12:42
0

O caminho do sistema. echo% PATH% deve mostrá-lo, da memória.

    
por 12.06.2009 / 12:36
0

Descobri que posso definir esse caminho indo em Propriedades do meu computador - > Avançado - > Variáveis de ambiente.

    
por 12.06.2009 / 23:59