我编写了以下脚本来检查SharePoint中的项目:
#######################################################################################################################################################################################################################################################
# Check out - Checks out a file saved in the given directory
#######################################################################################################################################################################################################################################################
Param (
[Parameter(Mandatory=$true)]
[string]$site,
[Parameter(Mandatory=$true)]
[string]$listName,
[Parameter(Mandatory=$true)]
[string]$doc
)
Add-PSSnapin Microsoft.Sharepoint.Powershell
$spWeb = Get-SPWeb $site
$list = $spWeb.Lists |? {$_.Title -eq $listName}
ForEach ($item in $list.Items) {
$itemFile = $item.File
if($itemFile.CheckOutStatus -eq "none" -and $itemFile.Name -eq $doc) {
try {
$itemFile.CheckOut()
Write-Host "Item checked out" -BackgroundColor Green
} catch {Write-Host "Error when checking in item" -BackgroundColor Red}
}
}
删除Param
块并明确声明参数后,我可以毫无问题地运行此脚本。通过明确声明我的意思是在脚本的顶部我设置$site = http://mysite/mypage
等
但是,只要我添加Param
块,脚本就不再有效。
我称之为:
来自powershell控制台的 \\path\to\file\script.ps1 -site http://mysite/mypage -list "Name of List" -doc "name of doc"
。
控制台中有无输出,并且未检出该文件。
我使用相同的Param设置创建了其他脚本,这些工作正常,但由于某些原因,只有在脚本中声明了params时,此脚本才有效....任何建议都非常感谢!