我正在尝试为SharePoint 2013编写PowerShell脚本。我的想法是,我想选择引用/documents/
文件夹的所有链接,并以.doc
,{结尾{1}}或.docx
,所以我写了以下.pdf
声明:
if
我使用的是$links = $file.ForwardLinks;
foreach ($link in $links) {
if ($link.url -like '*/Documents/*' -and ($link.url -like '.doc' -or $link.url -like '.docx' -or $link.url -like '.pdf')) {
& -and
正确吗?
答案 0 :(得分:1)
您的子句的组合是正确的:A -and (B -or C -or D)
。但是,对于与-like
运算符的部分匹配,您需要在字符串中使用通配符,否则运算符的行为与-eq
运算符相同。
if (
$link.url -like '*/Documents/*' -and
($link.url -like '*.doc' -or $link.url -like '*.docx' -or $link.url -like '*.pdf')
) {
...
}
但是,在您的情况下,更好的方法可能是从URL中提取扩展程序并检查它是否包含在扩展程序列表中:
$extensions = '.doc', '.docx', '.pdf'
$ext = [IO.Path]::GetExtension($link.url)
if ($link.url -like '*/Documents/*' -and $extensions -contains $ext) {
...
}