我在Powershell中有一個函數,它返回COM DLL註冊的路徑;在函數中返回正確的路徑,但在調用這個函數的時候,有一個額外的字符串「HKCR」前綴輸出使用Powershell從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
一些人能解釋這種奇怪的行爲?我期望兩個返回值是相同的。
謝謝,這也適用! – arung 2011-12-30 04:37:36