Powershell 太聪明了

标签 powershell

对可能是新手的问题表示歉意。

我正在编写一些针对 AD 运行各种查询的 Powershell 脚本。他们通常会返回一堆结果,很容易处理,即:

$results = myQuery
write-host "Returned " + $results.Count + " results."
foreach ($result in $results) { doSomething }

不用担心。但是,如果只有 1 个结果,Powershell 会自动将该结果转换为单个对象,而不是包含 1 个对象的数组。所以上面的代码会在 Count 和 foreach 处中断。我相信同样的问题会发生在 0 结果。

有人可以建议一种优雅的方法来处理这个问题吗?也许某种方式来转换结果,使它们始终是一个数组?

最佳答案

将第一行代码改为

$results = @(myQuery)

这将始终返回一个数组。见 this blog entry了解更多详情。

关于Powershell 太聪明了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/913788/

相关文章:

powershell - 为什么 'continue'在Foreach-Object中的行为类似于 'break'?

powershell - PowerShell v5.1选择对象控制台输出与v3.0不同

powershell - WebView - 获取 Just ' Share Name'

xml - 使用Powershell附加/删除空xml节点

powershell - 从 Powershell 使用 native CMD 命令时的编码问题

powershell - 从 PowerShell 中目录中的特定文件夹获取文件

Powershell Group-Object - 使用多个对象进行过滤

c# - 从 C# 以 32 位或 64 位运行 PowerShell

html - 如何在 PowerShell 对话框中显示 HTML 页面?

powershell - 包含不在 Powershell 中工作的运算符