如果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是从system32
redirect到syswow64
。 检查syswow64
通常不会redirect。
您声称Test-Path C:\Windows\SysWOW64\config\systemprofile\Desktop
即使该文件夹不存在也会返回true。 你确定?
还有什么是你的Excel组件的位,如果是32位,你只需要关心自己的SysWOW64path。