计算虚拟桌面然后删除 2 个以上

Count Virtual Desktops then delete more than 2

前言:我没有接受过关于如何编码的正式培训。我有点像它,并通过 powershell 完成了一些简单的事情,比如注册表项。

我有一个我正在尝试 运行 的小脚本,它将测试我有多少个虚拟桌面 运行ning (Get-DesktopCount)。我想要测试 return,如果有 2 个或更多虚拟桌面,则执行语句的第二部分,即删除所有虚拟桌面,直到只剩下两个虚拟桌面 (Remove-Desktop)

$DTC = Get-DesktopCount

Do
   {
     Remove-Desktop -Desktop "Desktop 2"
   }
     Until (($DTC) -gt '2')

我知道这与语法有关,我无法区分不同 cmdlet 的 return 的不同类型。

我在这里看到三件事

首先,当您执行 $DTC = Get-DesktopCount 时,您会 Get-DesktopCount 的结果保存为 $DTC。无论您创建或删除多少个桌面,存储在 $DTC 中的值已经设置并且不会更新,直到您告诉它更改。

第二个是循环的条件似乎是倒退的 - 您可能想继续 Until少于 2 个桌面(或者,While还有)

最后,虽然我认为它在这种情况下没有任何危害,但我认为您不想在这里使用 Do - 使用 Do { ... } While ( ... ) 而不是 While ( ... ) { ... } 你最终 运行 至少阻塞一次,即使条件为假(所以你至少关闭桌面 2 一次,即使桌面少于 2 个)

总而言之,我想你想要的可能更接近于

While ( (Get-DesktopCount) -gt 2 ) {
    Remove-Desktop -Desktop "Desktop 2"
}