在 SysWOW64 中测试路径 returns 如果路径不存在则为真,但在 System32 中存在

Testing for path in SysWOW64 returns true if path does not exist, but does exist in System32

注意:我使用的是 64 位系统。

我找不到有关我当前情况的文章。我使用 PowerShell 测试某个路径是否存在:

"C:\Windows\SysWOW64\config\systemprofile\Desktop"

它 returns 正确,即使 Desktop 文件夹在 SysWOW64 中不存在。我知道这与我确实有路径有关:

"C:\Windows\System32\config\systemprofile\Desktop"

但我不知道为什么。在上下文中,我正在对 Excel 中的一些内容进行自动化(是的,我知道它不受支持,但使用桌面文件夹一切正常),我想在尝试继续自动化之前测试这两个路径是否存在。

我的问题是,是否有必要同时测试两条路径? Excel 如果我只在其中一个路径中有 Desktop 文件夹,自动化会工作吗,因为它们似乎以某种方式连接?

我看过 and this 文章,这让我相信是的,但作为一名程序员,我犹豫是否将这些东西紧密地结合在一起,以防它们在未来发生变化。有没有更优雅的解决方案?

假设:

C:\Windows\SysWOW64\config\systemprofile\Desktop

存在,但是:

C:\Windows\System32\config\systemprofile\Desktop

不会。

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 中的第二个测试从 system32 重定向到 syswow64syswow64 的检查通常不会被重定向。

您声称 Test-Path C:\Windows\SysWOW64\config\systemprofile\Desktop returns 正确,即使该文件夹不存在。你确定吗?

还有你的 Excel 组件的位数是多少,如果是 32 位你只需要关心 SysWOW64 路径。