如何使用PowerShell PNP筛选SharePoint Online含指定字符串的文件夹
我们只需要新增关键词配置变量,在遍历文件夹时添加匹配筛选逻辑即可实现需求,如需递归扫描所有子文件夹,也可以补充对应调用逻辑,完整可运行脚本如下:
# 站点地址配置 $siteURL="https://URL" # 起始扫描的根文件夹站点相对路径 $rootFolder="/FOLDER" # 需要匹配的关键词 $matchKeyword = "important_documents" Function GetFolders($folderUrl) { $folderColl=Get-PnPFolderItem -FolderSiteRelativeUrl $folderUrl -ItemType Folder # 遍历文件夹 foreach($folder in $folderColl) { # 筛选名称包含指定关键词的文件夹,-ilike不区分大小写,不需要可换成-like if($folder.Name -ilike "*$matchKeyword*"){ write-host -ForegroundColor Green $folder.Name ",站点相对路径:$($folder.ServerRelativeUrl)" } # 可选:需要递归扫描所有子文件夹的话,取消下面一行的注释 # GetFolders($folder.ServerRelativeUrl) } } # 连接SharePoint Online站点 Connect-PnPOnline -Url $siteURL -Credentials (Get-Credential) # 调用函数执行扫描 GetFolders($rootFolder)
关键修改说明
- 新增了
$matchKeyword变量,可直接修改为你需要匹配的目标字符串 - 新增了匹配判断逻辑:
-ilike "*$matchKeyword*"的通配符匹配规则可筛选出名称中任意位置包含关键词的文件夹,如果你需要严格匹配前缀/后缀,可自行调整通配符位置(比如"$matchKeyword*"匹配前缀,"*$matchKeyword"匹配后缀) - 补充了可选的递归调用逻辑,默认只扫描你指定的根文件夹下的第一级文件夹,需要全量扫描所有子文件夹的话,取消对应行的注释即可
内容的提问来源于stack exchange,提问作者Nemanja
相关产品推荐
相关产品推荐

