在Powershell中的foreach和scriptblock内部递增
我希望有人能发现错误: 这是一个较大脚本中的小函数 我希望它在每次迭代在Powershell中的foreach和scriptblock内部递增,powershell,foreach,increment,start-job,scriptblock,Powershell,Foreach,Increment,Start Job,Scriptblock,我希望有人能发现错误: 这是一个较大脚本中的小函数 我希望它在每次迭代foreach时增加$I,但我无法让它工作。如果我只运行存在$I++的行,它将递增。 消息将到达用户,因此它工作正常,只是忽略了$i++ $i=0 功能信息{ 开始作业-名称Col01-初始化脚本{Import Module RemoteDesktop}-脚本块{$Users=Get-RDUserSession-ConnectionBroker$ActiveConnectionBroker-CollectionName“Col
foreach
时增加$I
,但我无法让它工作。如果我只运行存在$I++
的行,它将递增。
消息将到达用户,因此它工作正常,只是忽略了$i++
$i=0
功能信息{
开始作业-名称Col01-初始化脚本{Import Module RemoteDesktop}-脚本块{$Users=Get-RDUserSession-ConnectionBroker$ActiveConnectionBroker-CollectionName“Col01”
foreach($Users中的用户){
发送RDUserMessage-UnifiedSessionID$User.UnifiedSessionID-HostServer$User.HostServer-MessageTitle“Info”-MessageBody$使用:message
$i++
}
}
您有两个同名的变量“$i”
其中一个是全球的,第二个是本地的
下面是一个示例,它显示了正在发生的事情以及如何从函数内部更改全局变量(当您指定范围限定符时):
$i=777
写入输出“外部i:$i”
做什么{
$i=41
对于($z=0;$z-lt 10;$z++){
$global:i++
$i++
写入输出“内部i:$i$global:i”
}
}
做点什么
写入输出“i:$i”
下面是由上述代码生成的输出
outside i: 777
inside i: 42 778
inside i: 43 779
inside i: 44 780
inside i: 45 781
inside i: 46 782
inside i: 47 783
inside i: 48 784
inside i: 49 785
inside i: 50 786
inside i: 51 787
outside i: 787
看一看,但我如何更新全球$i并不重要,我只是不想更新