我需要帮助,因为我在 powershell 作业中使用变量时遇到问题。
让我解释
我想创建一个计数器来检索 ping OK 的数量
foreach($computer in $computers)
{
Start-ThreadJob -ThrottleLimit 100 -ScriptBlock {
if (Test-Connection $using:computer -count 1 -TimeoutSeconds 2 -Quiet)
{
$test_con = $test_con+1
}
}
}
write-host $test-con
我使用 $using 范围在启动线程作业中获取 $computer 变量没有问题。但我无法在每次测试连接为真时增加 test_con 变量,以最终获得 ping 的机器数量。
我想从作业中增加我的全局变量“test_con”
我使用的是powershell 7,我从来没有在bash linux下问过自己这个问题
有人可以向我解释一下它如何与 powershell 一起使用吗?
您确实可以使用
using
范围修饰符来解析调用范围中的变量引用,您只需要一个具有线程安全集合类型的变量即可写入:我个人更喜欢知道我们可以成功 ping 通哪些计算机,因此我建议将
Test-Connection
结果存储在表中的单独条目中: