我有一些 32 位 GNU 程序想要添加到我的 Windows7-64 位机器上的系统路径中,例如 Curl.exe、WGet.exe、AutoExNT.exe 等。我根本不想改变系统路径环境变量,所以我想将它们放在相当于旧 32 位系统上的“system32”的位置。
我知道,由于这些是 32 位程序,因此除非它们位于 32 位模拟器目录 SysWOW64 中,否则它们将无法运行。我试过了,所以我知道这是真的。
我很困惑为什么这个目录不是 Windows7 中默认系统路径的一部分。将 SysWOW64 添加到默认系统环境(非用户级别环境)是否安全或建议?
我是不是忽略了什么?有没有办法在路径中使用 SysWOW64 运行批处理文件,而无需破解系统路径?
答案1
Windows 中的 64 位/32 位设置非常麻烦。您必须将这些文件放在哪里取决于尝试执行它们的应用程序类型。如果您有 32 位应用程序尝试启动它们,则应将它们放在 SysWOW64 目录中。如果您有 64 位应用程序尝试启动它们,则它们将进入 System32 目录。如果您想访问真实的System32 目录来自 32 位应用程序,您可以使用特殊系统原生目录。
SysWOW64 目录包含所有 32 位二进制文件,但如果您启动 32 位二进制文件(例如 32 位 cmd.exe),它将显示为 System32 目录。在 32 位二进制文件中,您通常只能访问此目录的内容。您无法访问实际的 System32 目录,除非您使用的操作系统支持 Sysnative 目录,或者您启用了一些特殊的 API 标志。
更令人困惑的是,System32 目录(使用 64 位应用程序时看到的真实目录)包含所有 64 位二进制文件。