当我在32位Windows操作系统上使用环境变量%PROGRAMFILES(x86)%
时(如Windows XP,Vista等较早版本的Windows)会怎么样?在Windows操作系统32位上使用%PROGRAMFILES(x86)%
我希望它会简单地解析为:C:/Program Files
。这会发生吗?
当我在32位Windows操作系统上使用环境变量%PROGRAMFILES(x86)%
时(如Windows XP,Vista等较早版本的Windows)会怎么样?在Windows操作系统32位上使用%PROGRAMFILES(x86)%
我希望它会简单地解析为:C:/Program Files
。这会发生吗?
根据to this环境变量%PROGRAMFILES(x86)%
仅在64位系统上可用。
但是,如果您在64位系统上并使用%PROGRAMFILES%
,则得到的结果取决于请求环境变量的进程是32位还是64位。
因此,从64位系统上的64位进程中,您将得到C:\Program Files
,从64位系统上的32位进程获得C:\Program Files (x86)
,并从32位进程获得32位进程,你会得到C:\Program Files
。
如果这没有帮助,也许您可以评论或编辑您的原始问题,使其具体说明您正在尝试做什么。就目前来看,你的问题的答案是“不”。
谢谢,它作品如何说它的作品。尽管维基百科条目有点误导,但对人们的警告。 –
“如何使用32位和64位计算机共享的批处理文件查找特定的32位程序”。要做到这一点,您需要一个在32位系统上评估为c:\ program文件或在64位系统上评估为c:\ program files(x86)的变量。即%ProgramW6432% – OJW
所以,问题是:如何从运行在64位系统上的32位软件访问程序文件的64位路径? –
如果您在32位计算机/笔记本电脑上使用%programfiles%
,它将打开C:\Program Files
。
如果您在64位计算机/笔记本电脑上使用%programfiles%
,它将打开C:\Program Files
。
如果您在32位计算机/笔记本电脑上安装了64位程序,它将安装在名为Program Files (x64)
的新文件夹中,该文件夹位于“C”驱动器中。在这种情况下,您必须使用。
如果您在64位计算机/笔记本电脑上安装了32位程序,它将安装在名为Program Files (x86)
的新文件夹中,该文件夹位于“C”驱动器中。在这种情况下,您必须使用%programfiles(x86)
。
我猜部分原因是人们低估的原因是因为“如果你在32位计算机/笔记本电脑上安装了64位程序”,这当然显然是不可能的,这是无稽之谈。 –
Keith Hill回答了这个问题here,总结:
${env:ProgramFiles(x86)}
是不是一个32位机
的定义。如果你总是希望把/从x86的目录中获取数据/,然后您可以使用此代码来确定文件路径:
$file = "\file"
if ("${Env:ProgramFiles(x86)}")
{
$fullPath = "${Env:ProgramFiles(x86)}\$file"
}
else
{
$fullPath = "${Env:ProgramFiles}\$file"
}
'%PROGRAMFILES%'将解析为64位程序的文件夹,但是重新没有任何阻止你制作自己的[%PROGRAMFILES(x86)%](http://stackoverflow.com/questions/17312348/how-do-i-set-windows-environment-variables-permanently)变量 – Gary