Fermer

janvier 3, 2024

Mettre à jour $name des éléments existants à l’aide de PowerShell / Blogs / Perficient

Mettre à jour $name des éléments existants à l’aide de PowerShell / Blogs / Perficient


Bienvenue sur notre dernier article de blog dans lequel nous plongeons dans le domaine des scripts PowerShell pour vous permettre de mettre à jour efficacement les éléments existants. Dans le paysage numérique actuel, en évolution rapide, la nécessité de gérer et de modifier les données avec rapidité et précision est plus cruciale que jamais. Que vous soyez un professionnel de l’informatique chevronné ou que vous commenciez tout juste votre parcours vers l’automatisation, PowerShell s’avère être un outil formidable.

Dans ce guide, nous explorerons comment tirer parti de PowerShell pour mettre à jour de manière transparente $name des éléments existants. Libérez le potentiel de rationaliser vos processus, d’améliorer la productivité et de garder le contrôle de vos données. Rejoignez-nous dans ce voyage alors que nous découvrons la puissance et la polyvalence des scripts PowerShell pour des mises à jour efficaces des éléments.

Problème

J’ai un modèle et il existe déjà des éléments de 50 pages liés au type de modèle A. Il est désormais nécessaire d’ajouter un champ supplémentaire pour le modèle A avec la valeur par défaut « $name » dans la valeur standard de ce modèle.

Maintenant, si je veux créer un nouvel élément de page lié au modèle A, cela fonctionne bien. Mais pour le champ d’élément de 50 pages déjà existant, la valeur du champ affiche toujours « $name » au lieu d’être remplacée par le nom de l’élément de page.

Voici le paramètre PowerShell essentiel que nous utilisons

Variable de lecture

Invite l’utilisateur à fournir des valeurs pour les variables requises par le script pour effectuer son opération. Si un utilisateur sélectionne le bouton « OK », la commande renverra « ok » comme valeur. Si un utilisateur sélectionne le bouton « Annuler » ou ferme la fenêtre avec le bouton « x » dans le coin supérieur droit de la boîte de dialogue, la commande renverra « annuler » comme valeur.

Read-Variable [-Parameters <Object[]>] [-Description <String>] [-CancelButtonName <String>] [-OkButtonName <String>] [-ShowHints <SwitchParameter>] [-Validator <ScriptBlock>] [-ValidatorParameters <Hashtable>] [-Title <String>] [-Icon <String>] [-Width <Int32>] [-Height <Int32>] [<CommonParameters>]

CONTRIBUTIONS
Le type d’entrée est le type de l’objet que vous pouvez rediriger vers l’applet de commande.

LES SORTIES

Le type de sortie est le type des objets émis par l’applet de commande.

Solution

Vous pouvez utiliser le script PowerShell ci-dessous pour mettre à jour les valeurs de votre champ ou vous pouvez télécharger ou copier-coller le script PowerShell à partir de ce site. lien. Il faut remplacer Votre nom de champ avec le champ que vous devez changer.

$dialog= Read-Variable -Parameters `
@{ Name = "media"; Title = "Path"; Root="/sitecore/"; Editor="item";Tab="General";},
@{ Name = "contentType"; Title = "Content Type"; Root="/sitecore/templates"; Editor="item";Tab="General";} `
-Description "This script will edit field value " `
-Title "Field Value Update" -Width 500 -Height 500 `
-OkButtonName "Proceed" -CancelButtonName "Abort"
 
if ($dialog -ne "ok")
{   
   Exit
}
 
cd $media.Paths.FullPath;
$templateId = $contentType.ID;

Write-Host "Process Starting";
 
Get-ChildItem -Recurse -Language * . |  ForEach-Object {
$this = $_
 
if($_.TemplateID -eq $templateId){     
if($_.Fields["Your field name"].Value -eq '$name')
  {
             $_.Editing.BeginEdit();
             $_['Your field name']=$_.Name;
             $_.Editing.EndEdit();
  }
 
}    
}
 
Write-Host "Process Completed";

Voyons voir comment ça fonctionne

Mettre à jour $name des éléments existants

J’espère que cela sera utile !!! Vérifier notre blog Sitecore pour des trucs et astuces plus utiles.






Source link

janvier 3, 2024