powershell:如果命令执行后结果为空,则输出一些文本

powershell:如果命令执行后结果为空,则输出一些文本

我正在编写一个脚本来获取 Outlook 中的帐户。为此,我检索 .pst 和 .ost 文件。但如果没有任何文件,我想写一个输出,例如“未找到文件”这是我的代码:

 get-childitem -path C:\users\*\AppData\Local\Microsoft\Outlook*  -recurse -force -dept 1 -include *.ost, *.pst | select-object fullname, @{name='Size_MB';expression={$_.length /1MB -as [int]}}, lastwritetime | Sort-Object -Property Size_MB -Descending | out-file c:\test.txt

我尝试了很多方法,但都没有效果...有什么想法吗?

非常感谢!

答案1

标准方法是将 Get-ChildItem 的结果分配给一个变量,然后使用 if/else 从那里处理它。

就像是:

$OutlookAccounts = $null;
$OutlookAccounts = get-childitem -path C:\users\*\AppData\Local\Microsoft\Outlook*  -recurse -force -dept 1 -include *.ost, *.pst | select-object fullname, @{name='Size_MB';expression={$_.length /1MB -as [int]}}, lastwritetime;

If ($OutlookAccounts -ne $null)
{
$OutlookAccounts | Sort-Object -Property Size_MB -Descending | out-file c:\test.txt;
}
Else
{
Write-Host "No files found";
}

相关内容