命令行的可执行文件的来源

Windows中的命令行(在我的实例中是XP)正在寻找要执行的命令的“源”是什么? 我的意思是在命令行中input“java”,然后运行sytem / evnironment属性PATH中列出的某个目录中的java.exe(可以通过“SET PATH”命令列出或设置它)。 这个查询还有其他的来源吗? 如果是 – 在哪里? 我该如何设置?

我问,因为我有这样的情况下,该命令似乎没有在任何PATH的目录中,尽pipe它运行该命令(从某处..)。

万分感谢。

根据CreateProcess的MSDN文档 ,最后调用它来启动应用程序

  1. 加载应用程序的目录。
  2. 父进程的当前目录。
  3. 32位Windows系统目录。 使用GetSystemDirectory函数获取此目录的path。
  4. 16位Windows系统目录。 没有获得这个目录的path的函数,但它被search。 这个目录的名字是System。
  5. Windows目录。 使用GetWindowsDirectory函数获取此目录的path。
  6. PATH环境variables中列出的目录。 请注意,此函数不会searchApp Pathsregistry项指定的每个应用程序path。 要将这个每个应用程序path包含在search顺序中,请使用ShellExecute函数。

关于第六点。ShellExecute函数的文档没有描述何时处理App Paths键。

除了PATHvariables外,还可以在registry中configuration特定的应用程序path。

如果你看一下HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ App Paths,你可以看到这是如何完成的。

系统的path。 回声%PATH%应该从内存中显示它。

我发现我可以通过转到我的电脑属性 – >高级 – >环境variables来设置这个path。