Powershell脚本仅适用于显式参数声明

时间:2016-03-10 17:26:36

标签: powershell sharepoint

我编写了以下脚本来检查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时,此脚本才有效....任何建议都非常感谢!

0 个答案:

没有答案