我在Powershell中有一个函数,该函数返回从中注册COM dll的路径;在函数内返回正确的路径,但是在调用此函数时,在输出之前会有一个额外的字符串“ HKCR”
function com_registeredpath()
{
param([string]$guid)
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
$key = Get-Item "HKCR:\CLSID\$guid\InprocServer32"
$values = Get-ItemProperty $key.PSPath
[string] $defaultValue = [string] $values."(default)"
write-host ">>>: $defaultValue" # returns a value like: c:\somefolder\somefile.dll
remove-psdrive -name HKCR
return $defaultValue
}
write-host "~~~" (com_registeredpath "{00F97463-DF44-11D1-BED5-00600831F894}") # returns a value like: HKCR c:\somefolder\somefile.dll
Run Code Online (Sandbox Code Playgroud)
有人可以解释这种奇怪的行为吗?我希望两个返回值都相同。