在Powershell脚本中检查数组元素时出错:意外令牌'eq'

时间:2019-05-31 10:28:19

标签: powershell

我希望查看一个共享点列表,如果某个属性(名为Status的选择字段)是某个值,则更改该项目的作者。

Add-PSSnapin Microsoft.SharePoint.Powershell
$web = Get-SPWeb "http://site"
$library = $web.Lists["UserInfo"]
$newUser = $web.EnsureUser("user1")
$oldUser = $web.EnsureUser("user2")

foreach ($item in $library.Items)
{
   #$userfield = New-Object Microsoft.SharePoint.SPFieldUserValue($web,$item["DocumentAuthorColumnInternalName"].ToString())
   $userfield = New-Object Microsoft.SharePoint.SPFieldUserValue($web,$item["Author"].ToString())
   $userfield = New-Object Microsoft.SharePoint.SPFieldUserValue($web,$item["Author"].ToString())
   $login = $userfield.User.LoginName
   #if ($login -eq $oldUser.LoginName)
   if ($login -eq $oldUser.LoginName)
   {

#if($item["Status"] eq 'Fully Implemented')
#{
    $item["Author"] = $newUser
        #if you are using default "Author" column, you need to set the following as well:
        $item.Properties["vti_author"] = $newUser.LoginName
        $item.UpdateOverwriteVersion() #this saves changes without incrementing the version
       #}
   }
   $login = $null
}

$web.Dispose();

我可以使用它,但是当我到达线路时

if($item["Status"] eq 'Fully Implemented')

它会导致错误

  

意外令牌'eq'

1 个答案:

答案 0 :(得分:2)

您刚刚错过了eq中的连字符吗?所以应该是:

if($item["Status"] -eq 'Fully Implemented')
{
}