如何在从 32 位应用程序运行的批处理文件中获取 64 位 %ProgramFiles%?

如何在从 32 位应用程序运行的批处理文件中获取 64 位 %ProgramFiles%?

问题是,就我而言,从 32 位应用程序运行的批处理文件的 %ProgramFiles% 扩展为“C:\Program Files (x86)”。

答案1

您可以从环境变量中获取它%ProgramW6432%。此变量存在于 64 位 Windows 版本中,并始终指向 的 64 位实例Program Files

答案2

在由 32 位可执行文件生成的批处理文件中,我发现所有 ProgramFiles 相关环境变量都包含“Program Files (x86)”位置。作为一个临时解决方案,您可以假设 64 位文件夹位于同一驱动器上,但末尾缺少“ (x86)”子字符串。删除子字符串后的值可以按如下方式批量计算:

   set Programs=%ProgramFiles(x86)%
   set Programs64=%Programs:~0,-6%

答案3

阅读此 SO 以获得答案:https://stackoverflow.com/questions/10071300/how-to-create-a-batch-file-which-work-for-both-program-files-and-program-filesx

它使用环境变量来识别 x86 和 64 位 Program Files 文件夹

相关内容