命令行可执行文件的源代码

命令行可执行文件的源代码

Windows(我这里是 xp)命令行查找要执行的命令的“来源”是什么?我的意思是,我在命令行中输入例如“java”,然后它运行 java.exe,该 java.exe 位于系统/事件属性 PATH 中列出的某个目录中(您可以通过“SET PATH”命令列出或设置它)。还有其他查找来源吗?如果有 - 在哪里?我该如何设置它?

我之所以询问,是因为我遇到过这样的情况:该命令似乎不在该 PATH 的任何目录中,但尽管如此,它还是运行了该命令(从某处......)。

万分感谢。

答案1

根据MSDN 文档对于最终调用来启动应用程序的 CreateProcess

  1. 应用程序加载的目录。
  2. 父进程的当前目录。
  3. 32 位 Windows 系统目录。使用 GetSystemDirectory 函数获取此目录的路径。
  4. 16 位 Windows 系统目录。没有函数可以获取此目录的路径,但会搜索该目录。此目录的名称为 System。
  5. Windows 目录。使用 GetWindowsDirectory 函数获取此目录的路径。
  6. PATH 环境变量中列出的目录。请注意,此函数不会搜索 App Paths 注册表项指定的每个应用程序路径。要将此每个应用程序路径包含在搜索序列中,请使用 ShellExecute 函数。

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

答案2

除了 PATH 变量之外,还可以在注册表中配置特定的应用程序路径。

如果您查看 HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths,您就会明白这是如何完成的。

答案3

系统的路径。echo %PATH% 应该从内存中显示它。

答案4

我发现我可以通过转到“我的电脑属性”->“高级”->“环境变量”来设置此路径。

相关内容