我在 Windows Server 2008r2 上运行 64 位 Powershell ISE。
在调试时,我设置了一个变量,例如:
$dbName = "db1"
然后我进行以下更改
$dbName = "db2"
我再次单步执行脚本,即使调试器跨过修改后的行,当我将鼠标悬停在 $dbName 变量上时,它仍然显示值“db1”。我似乎可以解决此问题的唯一方法是重新启动该 ISE - 这很痛苦!
谁能告诉我哪里出错了?
* 更新 *
我在模块中有以下功能:
Function SampleFunction()
{
$dbName = "db1"
write-host $dbName
}
我有一个导入 moduleL 的 powershell 脚本
Import-Module -Name ".\BadPsm.psm1"
在 powershell ISE 中,通过在执行窗口中输入“SampleFunction”,在执行函数之前,我在 $dbName = "db1" 上放置了一个断点。一切都很好,值“db1”被写入输出窗口。
然后我更改函数,使 $dbName = "db2"。我通过再次执行 Import-Module -Name ".\BadPsm.psm1" 重新导入模块。
当我再次执行该函数时,我遇到了断点,走过去,可以看到 $dbName 仍然等于“db1”,“db1”也被写入了输出窗口。
为了帮助说明,我在这里向 youtube 发布了一个简短的截屏视频:youtube 链接