powershell - 计算虚拟桌面然后删除超过 2 个
问题描述
前言:我还没有接受过关于如何编码的正式培训。我有点喜欢它并通过powershell完成了一些简单的事情,比如注册表项。
我有一个我正在尝试运行的小脚本,它将测试我运行了多少个虚拟桌面(Get-DesktopCount)。我希望测试该返回,如果有 2 个或更多虚拟桌面,则执行语句的第二部分,即删除任何虚拟桌面,直到只剩下两个虚拟桌面(删除桌面)
$DTC = Get-DesktopCount
Do
{
Remove-Desktop -Desktop "Desktop 2"
}
Until (($DTC) -gt '2')
我知道这与语法有关,我无法区分不同 cmdlet 的不同类型的返回。
解决方案
我在这里看到三件事
第一个是当你这样做$DTC = Get-DesktopCount
时,你会保存Get-DesktopCount
as的结果$DTC
。无论您创建或删除多少个桌面,其中存储的值$DTC
都已设置,并且在您告诉它更改之前不会更新。
第二个是循环的条件似乎是倒退的——你可能想继续下去,Until
那里的桌面少于While
2 个(或者,还有更多)
最后,虽然我认为在这种情况下它不会造成任何伤害,但我认为你不想在Do
这里使用 - 通过使用Do { ... } While ( ... )
而不是While ( ... ) { ... }
你最终运行块至少一次,即使条件为假(所以你至少关闭桌面 2 一次,即使桌面少于 2 个)
总而言之,我认为你想要的可能更接近
While ( (Get-DesktopCount) -gt 2 ) {
Remove-Desktop -Desktop "Desktop 2"
}
推荐阅读
- azure - 当我们为 Azure SQL Server 定义 Active Directory Admin 时,我们可以删除 Server Admin 吗?
- loops - 如何在访问该数据类型的元素时迭代某些数据类型的列表
- content-management-system - Opencart:安装后模块不显示
- python - 有没有办法在同一个列表上进行多次插入?
- python - 在 Tensorflow 2 中手动设置 trainable_variables 权重
- c# - Unity Editor 场景为黑色
- reactjs - ant 子菜单无法更改为垂直
- javascript - 网格容器内的卡片:列表中的每个孩子都应该有一个唯一的“key”道具
- bash - 作为兄弟运行 docker
- c++ - C++ 无法打开源文件“time.h”