如果path不存在,SysWOW64中的pathtesting返回true,但在System32中存在

注意:我在64位系统上。

我很难find关于我目前情况的文章。 我使用PowerShell来testing某个path是否存在:

“C:\ WINDOWS \ Syswow64资料\ CONFIG \ systemprofile \桌面”

即使在SysWOW64中不存在Desktop文件夹,它也会返回true。 我知道这是与我有道路的事实有关:

“C:\ WINDOWS \ system32 \设置\ systemprofile \桌面”

但我不知道为什么。 在上下文中,我在Excel中自动化一些东西(是的,我知道它是不受支持的,但与桌面文件夹一切工作正常),我想testing,如果两条path之前,试图继续自动化。

我的问题是,是否有必要testing两个path? 如果我有一个path中的桌面文件夹,Excel自动化工作,因为他们似乎连接不知何故?

我已经看到了这篇文章和这篇文章,这让我相信是的,但是作为一名程序员,我不愿意将这些东西紧密地结合在一起,以防将来发生变化。 有没有更优雅的解决scheme?

假设:

C:\ WINDOWS \ Syswow64资料\ CONFIG \ systemprofile \桌面

存在,但是:

C:\ WINDOWS \ system32 \设置\ systemprofile \桌面

才不是。

64位PowerShell:

Test-Path C:\Windows\SysWOW64\config\systemprofile\Desktop True Test-Path C:\Windows\System32\config\systemprofile\Desktop False 

32位PowerShell:

 Test-Path C:\Windows\SysWOW64\config\systemprofile\Desktop True Test-Path C:\Windows\System32\config\systemprofile\Desktop True 

在32位PowerShell中的第二个testing是从system32redirect到syswow64 。 检查syswow64通常不会redirect。

您声称Test-Path C:\Windows\SysWOW64\config\systemprofile\Desktop即使该文件夹不存在也会返回true。 你确定?

还有什么是你的Excel组件的位,如果是32位,你只需要关心自己的SysWOW64path。

Interesting Posts