即使没有找到数据,也可以使用Out-Gridview

时间:2018-01-25 15:35:28

标签: powershell out-gridview

我在我的powershell脚本中实现了一个out-gridview,它向我展示了今天创建的所有文件。 如果特定路径中有文件,它可以正常工作,但如果没有,则没有任何反应。

即使目录不包含任何文件,网格也会很好。网格没有列出任何项目,也可能只是没有找到文件的通知。

示例:

gci C:\User\Executions\2018-01-25 | Out-GridView

一切都会比没有更好: - )

当然,我可以使用Test-Path在任何地方查询和编写(例如Write-Host),但在网格中输出消息更美观。

3 个答案:

答案 0 :(得分:1)

$list = Get-ChildItem "C:\User\Executions\2018-01-25"
if(($list).count -gt 0){
  Get-ChildItem $list | Out-GridView
}else{
  'No Data found' | Out-GridView
}

@TheIncorrigible1谢谢!

答案 1 :(得分:0)

看起来有人打败了我,但我也会包含我的例子。然而,我的使用服务。在我的机器上,如果Get-Service命令使用-Name s *,它将使用以S开头的服务打开Out-GridView。如果Get-Service命令使用-Name x *,则它将打开运行Else部分并使用PSCustomObject打开Out-GridView。这个版本给你的是能够标记列。在Danijel de Vasco的例子中,它使用默认值" string"作为列标题与我的,使用"消息。"然而,或多或少是同样的事情,只需要一个小的定制。

If (Get-Service -Name s* -OutVariable Services) {
    $Services | Out-GridView
} Else {
    $Message = [PSCustomObject]@{
        Message = 'No Files Found'
    }
    $Message | Out-GridView
}

答案 2 :(得分:-1)

我今天感觉很慷慨

try
{
    $out = gci C:\User\Executions\2018-01-25
    if ($out)
    {
        $out | Out-GridView
    }
    else
    {
        $null = [System.Windows.Forms.MessageBox]::Show("Directory is empty", "Notification", "OK", "Information")
    }
}
catch
{
    $ErrMsg = $_.Exception.Message
    $null = [System.Windows.Forms.MessageBox]::Show("Error Occurred: $ErrMsg", "Error", "OK", "Error")
}