Тестирование пути в SysWOW64 возвращает true, если путь не существует, но существует в System32
ПРИМЕЧАНИЕ. Я работаю в 64-битной системе.
У меня проблемы с поиском статей, касающихся моей текущей ситуации. Я использую PowerShell, чтобы проверить, существует ли определенный путь:
"C: \ Windows \ SysWOW64 \ Config\systemprofile\Desktop"
и он возвращает true, даже если папка Desktop не существует в SysWOW64. Я знаю, что это связано с тем, что у меня есть путь:
"C: \ Windows \ System32 \ Config\systemprofile\Desktop"
но я не знаю, почему. В контексте, я автоматизирую некоторые вещи в Excel (да, я знаю, что это не поддерживается, но с папками рабочего стола все работает отлично), и я хочу проверить, существуют ли оба пути, прежде чем пытаться продолжить автоматизацию.
У меня вопрос, нужно ли тестировать оба пути? Сработает ли автоматизация Excel, если у меня папка "Рабочий стол" только в одном из путей, потому что они как-то связаны?
Я видел эту и эту статью, и это заставляет меня верить, что да, но как программист, я не решаюсь так тесно связать эти вещи на случай, если они изменятся в будущем. Есть ли более элегантное решение?
1 ответ
Предполагая, что:
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
в syswow64
, Проверяет для syswow64
обычно не перенаправляются.
Вы утверждаете Test-Path C:\Windows\SysWOW64\config\systemprofile\Desktop
возвращает true, даже если эта папка не существует. Уверены ли вы?
Кроме того, какова разрядность ваших компонентов Excel, если они 32-битные, вам нужно только позаботиться о пути SysWOW64.