#powershell
#powershell
Вопрос:
Я хочу передать переменную path в Get-ChildItem. Но переменная path не выбирает путь
Я попробовал следующее
[STRING]$global:svcName="RSCDsvc"
$bsaPath=(Get-WmiObject -query "select Pathname from win32_service where name='$svcName'").PathName
write-output $bsaPath
Выше приведен путь, по которому установлен продукт
«C:Program ФайлыBMC SoftwareBladeLogicRSCDRSCDsvc.exe »
Я использую ту же переменную $bsaPath, чтобы получить версию продукта, она не выдает мне результат
PS> [STRING]$global:svcName="RSCDsvc"
PS> $bsaPath=(Get-WmiObject -query "select Pathname from win32_service where name='$svcName'").PathName
PS> write-output $bsaPath
"C:Program FilesBMC SoftwareBladeLogicRSCDRSCDsvc.exe"
PS> $installedVersion=((Get-ChildItem -path $bsaPath -ErrorAction SilentlyContinue).VersionInfo).ProductVersion
PS> write-output $installedVersion
PS>
Но я попробую следующее
PS> $installedVersion=((Get-ChildItem -path "C:Program FilesBMC SoftwareBladeLogicRSCDRSCDsvc.exe" -ErrorAction SilentlyContinue).VersionInfo).ProductVersion
PS> write-output $installedVersion
8.9.01.68
PS>
Как получить версию, передав путь в качестве переменной?
Ответ №1:
Похоже, ваш запрос $bsaPath=(Get-WmiObject -query "select Pathname from win32_service where name='$svcName'").PathName
возвращает путь, заключенный в двойные кавычки.
Вам нужно их обрезать:
$global:svcName="RSCDsvc"
$bsaPath=(Get-WmiObject -query "select Pathname from win32_service where name='$svcName'").PathName.Trim('"')
$bsaPath
$installedVersion=((Get-ChildItem -path $bsaPath -ErrorAction SilentlyContinue).VersionInfo).ProductVersion
$installedVersion
Результат:
C:Program FilesBMC SoftwareBladeLogicRSCDRSCDsvc.exe 8.9.01.68