gpt4 book ai didi

powershell - Powershell脚本删除Sitecore中法语版本的所有内容项

转载 作者:行者123 更新时间:2023-12-04 17:08:49 24 4
gpt4 key购买 nike

我想使用此脚本删除法文版的所有内容项,并将英文版保留在sitecore中,但要确保它在执行之前看起来不错:(

cd 'master:/sitecore/content'

function FilterItemsToProcess($item)
{
Get-Item $item.ProviderPath -Language "fr-CA"
}

$list = [System.Collections.ArrayList]@()
$itemsToProcess = Get-ChildItem -Recurse . | foreach {FilterItemsToProcess($_)}
if($itemsToProcess -ne $null)
{

$itemsToProcess | ForEach-Object {
| remove-item
}
}

最佳答案

Miroo,

您需要知道的一件事是,Remove-Item始终将整个项目删除。即使您通过管道传输特定于语言的版本,它也不会仅删除语言。这是因为sitecore API总是返回特定语言的项目,而Remove-Item无法忽略意图。

为此,您需要使用的是Remove-ItemLanguage Commandlet。

例如在下面的示例中,我将在内容中创建一个“测试”项目,然后向每个项目添加波兰语版本,然后在下一步中删除波兰语版本。

New-Item master:\content\ -ItemType "Sample/sample item" -Name test -Language en | Out-Null

foreach ($i in 1..10) {
New-Item master:\content\test\ -ItemType "Sample/sample item" -Name $i -Language en | Out-Null
}

Get-ChildItem master:\content\test\ | Add-ItemLanguage -TargetLanguage pl-pl -IfExist Skip | Out-Null

Get-ChildItem master:\content\test\ | Remove-ItemLanguage -Language pl-pl

您的脚本可能很简单,如下所示:

$path = "master:\content"
@(Get-Item $path) + (Get-ChildItem $path -Recurse) | Remove-ItemLanguage -Language "fr-CA"

关于powershell - Powershell脚本删除Sitecore中法语版本的所有内容项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29928540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com