Out-Gridview, даже если данные не найдены

В моем скрипте powershell реализован внешний вид сетки, который показывает все созданные сегодня файлы. Если в указанном пути есть файлы, все работает нормально, а если нет, то ничего не происходит.

Было бы здорово, что сетка появляется, даже если в каталоге нет файлов. Либо в таблице нет элементов или просто может быть уведомление о том, что файлы не найдены.

пример:

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

Все было бы лучше, чем ничего:-)

Конечно, я мог бы использовать Test-Path для запросов и записи в любом месте (например, Write-Host), но более эстетично выводить сообщение в виде сетки.

3 ответа

$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 спасибо!

Похоже, кто-то меня опередил, но я приведу и мой пример. Шахта пользуется услугами, однако. На моей машине, если команда Get-Service использует -Name s*, она откроет Out-GridView со службами, начинающимися с S. Если команда Get-Service использует -Name x*, она запустит часть Else и откройте Out-GridView с помощью PSCustomObject. Эта версия дает вам возможность пометить столбец. В примере Даниэля де Васко в качестве заголовка столбца вместо моего используется значение по умолчанию "string", в котором используется "Message". Более или менее то же самое, однако, с незначительной настройкой.

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

Я чувствую себя щедрым сегодня

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")
}
Другие вопросы по тегам