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 リンク