Передача переменной, содержащей путь к Get-ChildItem, не дает результата - PullRequest
1 голос
/ 13 апреля 2019

Я хочу передать переменную пути в Get-ChildItem.Но переменная пути не выбирает путь

. Я попробовал следующее

[STRING]$global:svcName="RSCDsvc"
$bsaPath=(Get-WmiObject -query "select Pathname from win32_service where name='$svcName'").PathName
write-output $bsaPath

. Выше приведен путь, по которому установлен продукт

"C: \Программные файлы \ BMC Software \ BladeLogic \ RSCD \ RSCDsvc.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 Files\BMC Software\BladeLogic\RSCD\RSCDsvc.exe"
PS> $installedVersion=((Get-ChildItem -path $bsaPath -ErrorAction SilentlyContinue).VersionInfo).ProductVersion
PS> write-output $installedVersion
PS>

Но я пробую ниже

PS> $installedVersion=((Get-ChildItem -path "C:\Program Files\BMC Software\BladeLogic\RSCD\RSCDsvc.exe" -ErrorAction SilentlyContinue).VersionInfo).ProductVersion
PS> write-output $installedVersion
8.9.01.68
PS>

Как получить версию, передав путь в качестве переменной?

1 Ответ

3 голосов
/ 13 апреля 2019

Кажется, ваш запрос $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 Files\BMC Software\BladeLogic\RSCD\RSCDsvc.exe
8.9.01.68
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...