如何在PowerShell查询中强制出错

qcbq4gxm  于 2023-01-30  发布在  Shell
关注(0)|答案(1)|浏览(97)

我有一个文件,有这样的名称在我的SP网站。我只是想知道我怎么才能防止下载一个空的空白文件是没有文件,有一个当前的日期。
目前如果我在AddDays中添加+5,那么它会下载一个空文件。我只是想知道如果文件不存在,如何使它不下载任何东西。

Full-Report-2023-01-11-03.00.13AM.csv
Full-Report-2023-01-10-02.00.43AM.csv
try{
            $NameDate = (Get-Date).AddDays(0).ToString('yyyy-MM-dd')
            $latestFiles = Invoke-WebRequest -Uri "https://graph.microsoft.com/v1.0/sites/$siteId/drives/$driveId/items/root/children?`$orderby=name desc&`$filter=startswith(name,'Full-Report-$NameDate ')&`$select=name,id&`$top=1" -Method GET -Headers $headers

        }catch{
            $ErrorMessage = $_.Exception.Message
            Write-Host "ERROR TYPE: $ErrorMessage"
        }
sgtfey8w

sgtfey8w1#

你可以使用if else条件来检查文件的大小。如果文件为0字节,那么你可以跳过它。为了演示的目的,我检查了一个0字节的特定文件。下面是为我工作的完整脚本。

$response=Invoke-WebRequest -Uri "https://graph.microsoft.com/v1.0/sites/$siteId/drives/$driveId/root:/Folder1:/children/sample.txt" -Method GET -Headers $headers
$object=$response.Content|ConvertFrom-Json
if($object.size -ne 0)
{
    $object."@microsoft.graph.downloadUrl"
}
}else{
    Write-Host "It is an Empty File"
}

结果:

在您的情况下,下面是一些你可以尝试.

$latestFiles = Invoke-WebRequest -Uri "https://graph.microsoft.com/v1.0/sites/$siteId/drives/$driveId/items/root/children?`$orderby=name desc&`$filter=startswith(name,'Full-Report-$NameDate ')&`$select=name,id&`$top=1" -Method GET -Headers $headers
$object=$latestFiles.Content|ConvertFrom-Json
if($object.size -ne 0)
{
    <Download the file>
}
}else{
    Write-Host "It is an Empty File"
}

相关问题