我有一些编辑注册表的代码,所以它需要以管理员身份运行。为此,我从正在运行的 PowerShell 脚本启动一个新的 PowerShell 进程,并传入部分注册表项路径,该路径恰好是版本号,例如“12.0”。新 PowerShell 进程中的函数将字符串接收为“12”,而不是“12.0”,因此我收到了找不到注册表项的错误。
我创建了一个小样本 powershell 脚本来重现该问题。这是片段:
$ScriptBlock = {
function Test([string]$VisualStudioVersion)
{
$VisualStudioVersion # This always displays 12, instead of 12.0
$Host.UI.RawUI.ReadKey()
}
}
# Run the script block's function.
Start-Process -FilePath PowerShell -ArgumentList "-Command & {$ScriptBlock Test(""12.0"")}"
在这里,我硬编码了“12.0”,但实际上我想传入一个变量。
关于我做错了什么的任何想法?提前致谢。