Когда я пытаюсь получить файл по следующему пути - он терпит неудачу:
$path = Get-ItemProperty -Path "%ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll"
или
$moduleVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo("%ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll").FileVersion
Есть ли обходной путь для этого в powershell
?
Когда я указываю «полный путь», он работает нормально, но я не контролирую значение. Поэтому я ожидаю, что путь будет разрешен автоматически, как при вставке его непосредственно в Проводник ... но этого не происходит.
Get-ItemProperty: Невозможно найти путь 'C: \ Users \ xxxx \ Documents \ yyyy \% ProgramFiles% \ IIS \ Asp. Net Базовый модуль \ V2 \ aspnetcorev2.dll ', так как он не существует.
РЕДАКТИРОВАТЬ 1 Я пытался применить исправление Regex, но оно не работает:
$path = "%ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll";
$path = $path -replace "\%(.*?)\%", '$env:$1'
$path2 = Get-ItemProperty -Path "%ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll" #does not work
$path3 = Get-ItemProperty -Path "$env:ProgramFiles\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll" #works
$path4 = Get-ItemProperty -Path $path #does not work
Может кто-нибудь объяснить, почему path3
работает, а path4
нет? значения одинаковы. Все еще пытаюсь заставить это работать.