如何检查文件是否是上次修改的,并且仅使用 Add-PnPFile 将修改后的文件从本地上传到使用 PowerShell 的 SharePoint

How to check whether the file is last modified or not and only upload the modified file using Add-PnPFile from local to SharePoint using PowerShell

我正在尝试通过 Add-PnPFile 将文件从本地上传到 Sharepoint。 但是每次我上传文件时,它都会覆盖现有文件。如果现有文件没有被修改,它仍然会再次上传。

我想检查文件是否已经存在?如果是,那么我想检查修改日期是否在最近 1 天内被修改?

有没有关于检查和仅上传修改后的文件的建议? 代码到现在(我错过了我假设的检查文件,不知道如何去做。)

#install and import module
Import-Module SharePointPnPPowerShellOnline 
#Get Connection to the url
Connect-PnPOnline "Some SharePoint Url" -UseWebLogin

#get the files from a local folder
$Files = Get-ChildItem "C:\Some Local FolderPath" -Recurse

#Now check wether the file is being modified or not ? 
foreach($File in $Files){

    $LastWriteTimeForThisFile = $File.LastWriteTime.Day
    $difference = (Get-Date).Day - $LastWriteTimeForThisFile

        if ( $difference -lt 1) 
        {
        $upload = Add-PnPFile -Path $File.FullName -Folder $SharePointFolderPath
        #$message = "Successfully Uploaded" 
        Write-Host "======================Successfully Uploaded==============================="
        }
        else{
         Write-Host "=========Not Modified so not uploading again============"
         }
    }

您可以将您的文件名与上传到SharePoint 的路径连接起来,并使用Get-PnPFile 检查文件是否存在。如果文件存在,查看文件的修改时间

                try { 
                        $file=Get-PnPFile -Url "/sites/dev/Shared Documents/Facebook.png"-ErrorAction Stop
                        $file 
                        #do file exist action
                    }
                    catch {
                         Write-Host "$($_.Exception.Message)" -Foregroundcolor Red
                         #do file not exist action
                         
                         }