我在我的powershell脚本中实现了一个out-gridview,它向我展示了今天创建的所有文件。 如果特定路径中有文件,它可以正常工作,但如果没有,则没有任何反应。
即使目录不包含任何文件,网格也会很好。网格没有列出任何项目,也可能只是没有找到文件的通知。
示例:
gci C:\User\Executions\2018-01-25 | Out-GridView
一切都会比没有更好: - )
当然,我可以使用Test-Path在任何地方查询和编写(例如Write-Host),但在网格中输出消息更美观。
答案 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")
}