在我的一个脚本中,我使用了一个计数器,如果发生特定事件,我会逐渐增加。我使用以下语法来执行此操作:
if ($IndexPositionTrue) {
$CorrectTextbox.Text = $script:countercorrect++
}
现在我正在尝试实现一个按钮,您可以将$countercorrect
值重置为0.为此我设置了一个带有click_handler的按钮:
$reset = New-Object System.Windows.Forms.Button
$reset.Add_Click($handler_reset_click)
$form1.Controls.Add($Reset)
$handler_reset_click = {
Reset
}
function Reset {
Clear-Variable countercorrect
}
我们假设$countercorrect
值已增加到5,我使用Reset
函数。该值将重置为0,但在下一个增量而不是显示1后,它将显示为6。
我的语法不正确还是我"重置"错误的价值?
答案 0 :(得分:3)
我认为这是一个范围问题,您可以像这样修改重置功能:
function Reset {
$script:countercorrect = 0
}
答案 1 :(得分:2)
您可以在If语句中引用$Script:countercorrect
,但请参阅功能$countercorrect
中的reset
。如果认为你在这里使用了错误的范围。
使用功能
function Reset {
Clear-Variable countercorrect -Scope Script
}