我有一个出于兼容性原因而运行在32位cmd.exe
进程中的批处理文件。但是,在这种情况下,我现在需要启动Windows命令行工具的64位版本msiexec
。我怎样才能做到这一点?
其他细节:
我正在使用批处理文件来安装各种软件产品。为了最大程度地与旧产品兼容,该批处理文件以32位进程运行。但是,我现在需要安装Intel Haxm,它需要64位版本的msiexec
。
我已经尝试调用c:\windows\system32\msiexec.exe
,但是这样做时Windows安装程序日志文件仍然显示:
=== Verbose logging started: 14.04.2015 14:27:53 Build type: SHIP UNICODE 5.00.9600.00 Calling process: c:\windows\SysWOW64\msiexec.exe ===
您可以使用sysnative
别名来执行此操作,如MSDN文章文件系统重定向器中所述:
通过将%windir%\ Sysnative替换为%windir%\ System32,32位应用程序可以访问本机系统目录。WOW64将Sysnative识别为特殊别名,用于表示文件系统不应重定向访问。该机制灵活且易于使用,因此,推荐使用该机制来绕过文件系统重定向。请注意,64位应用程序不能使用Sysnative别名,因为它是一个虚拟目录,而不是真实目录。
Windows Server 2003和Windows XP:从Windows Vista开始添加了Sysnative别名。
因此,在批处理文件中,您会说类似
%windir%\sysnative\msiexec /install product.msi /passive /norestart
或者,如果您需要运行另一个批处理文件
%windir%\sysnative\cmd.exe /c silent_install.bat
请注意,sysnative
除非已安装修补程序942589,否则Windows XP或Windows 2003的64位版本不支持该功能。请参阅此答案以获取一种解决方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句