2016-03-30 58 views
2

我有一個要求,用相同名稱的優化圖像替換Sitecore媒體庫中的一個負載(2000+)圖像。我需要保留原始的GUIDS,以便所有圖像仍然鏈接。Sitecore powershell 100項限制

所以我基本上需要更換圖像blob數據和大小數據。我已經寫了一個PowerShell腳本來做到這一點,但我發現它一直會處理100個項目。我看不到任何理由,這可能只是我的腳本是垃圾,因爲我之前沒有用過powershell。

$CurrentImages = Get-Item -Path master: -Query '/sitecore/media library/Images/Products//*[@@TemplateName="Jpeg"]'; 


$NewImages = Get-Item -Path master: -Query '/sitecore/media library/NewImages//*[@@TemplateName="Jpeg"]'; 

Write-Host $NewImages.Count; 


$CurrentImages|foreach{ $Current = $_; $NewImages|foreach{ $New = $_; if($New.DisplayName -eq $Current.DisplayName){ Write-Host $Current.DisplayName; $Current.Blob = $New.Blob; $Current.Size = $New.Size; $New | Remove-Item}}}; 

進出口使用的Sitecore的PowerShell的extention如果這也有助於

回答

10

Sitecore.config的限制實際上是實行由CMS查詢機制。您可以找到下面的行,並將其更改爲了限制:

<setting name="Query.MaxItems" value="100" />

不過,我會建議在更大的搜索情況下,你可能想使用Find-Item cmdlet時利用Sitecore的內容搜索的基礎設施。

您可以在the Gist I've put together some time ago with performance analysis中找到更多不同的策略來查找內容。

但是,在Find-Item的情況下,您需要將搜索結果導入到Initialize-Item以將搜索結果項目轉換爲完整的sitecore項目。

編輯:由於在鬆弛SCHANNEL學會(!感謝Kamruz Jaman) 此限制進一步Sitecore的8.1增強在App_Config\Include\Sitecore.ExperienceExplorer.config至260,但顯然在你的情況下,第一限制仍是如此。

<setting name="Query.MaxItems"> 
    <patch:attribute name="value">260</patch:attribute> 
</setting> 
+0

哦好吧我不會想到看看Sitecore.config我一直在看所有的PowerShell配置。非常感謝你 – Dannymadethis