我的脚本正在从 SQL Server 中的存储过程填充数据行。然后我在整个脚本中引用此数据行中的特定列。我想要做的是添加功能,如果行数 = 0,则采取行动 X,如果行数 = 1,则采取行动 Y,如果行数 > 1,则采取行动 Z。
-- PowerShell script snippet
# $MyResult is populated earlier;
# GetType() returns Name=DataRow, BaseType=System.Object
# this works
ForEach ($MyRow In $MyResult) {
$MyFile = Get-Content $MyRow.FileName
# do other cool stuff
}
# this is what I'm trying to do, but doesn't work
If ($MyResult.Count -eq 0) {
# do something
}
ElseIf ($MyResult.Count -eq 1) {
# do something else
}
Else {
# do this instead
}
如果我使用数组,我可以让 $MyResult.Count 工作,但是我不能直接引用 $MyRow.FileName。
这可能非常简单,但我是 PowerShell 和面向对象语言的新手。我试过搜索这个站点、脚本专家的博客和谷歌,但我没有找到任何告诉我如何做到这一点的东西。
任何帮助深表感谢。
最佳答案
它与您如何填充 $MyResult
息息相关。如果您像这样查询数据库
$MyResult = @( << code that returns results from database >> )
也就是说,将从数据库返回数据集/数据表的代码包含在
@( ... )
中,然后使用 $MyResult.count
可以轻松检查返回的行数。如果您以这种方式填充 $MyResult,您的原始代码应按原样工作。
关于powershell - 在 PowerShell 中返回 DataRow 的行数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15395510/