Handy PowerShell Script When Working With Text Fields

> Quickly analyze freeform text field inputs
Cover Image for Handy PowerShell Script When Working With Text Fields

Whenever I get a requirement that involves working with a field that contains freeform text such as Single Line Text, Multi Line Text, or Rich Text, one of the first things I do is consider all of the unique character values that are at play. If one is not careful with said values, it can result in myriad issues and errors.

The Script

Use this script to help you get the full picture of what you need to account for:

$startPath = Read-Host "Enter the starting path (ex. /sitecore/content/Website)"
$templateId = Read-Host "Enter the template ID (ex. {AFA21CDF-C747-4F93-BFBC-8268516F300B})"
$fieldName = Read-Host "Enter the field name to scan (ex. metaTitle)"
Write-Host "`nScanning '$startPath' for template '$templateId' and field '$fieldName'..."
$items = Get-ChildItem -Path $startPath -Recurse | Where-Object {
$_.TemplateId -eq $templateId -and $_.Fields[$fieldName] -and $_.Fields[$fieldName].Value
}
Write-Host "Found $($items.Count) items with a non-empty '$fieldName' field"
if (!$items.Count) {
Write-Host "No matching items found. Exiting."
exit
}
$charSet = New-Object System.Collections.Generic.HashSet[char]
Write-Host "`nAnalyzing characters..."
foreach ($item in $items) {
$fieldValue = $item.Fields[$fieldName].Value
foreach ($char in $fieldValue.ToCharArray()) {
$charSet.Add($char) | Out-Null
}
}
$sortedChars = ($charSet | Sort-Object) -join ''
Write-Host "`nUnique characters found in '$fieldName' fields:`n"
Write-Host $sortedChars

You will see an output such as:

&(),-/<;3ABCDEFGHIKLMNOPRSTUVWXYabcdefghijklmnopqrstuvwxyz®

Make note of characters which may be treated as special or escape characters wherever you are using them. Also make note of arrow characters (<) which potentially indicate HTML or XML content where you may not be expecting it.

Conclusion

With this information in mind, you can be proactive and realistic about processing, sanitization, display, and design requirements. This will also help identify which values or items require extra attention during testing.

Be unique,

-MG


More Posts

Cover Image for Hello World

Hello World

> Welcome to the show

Cover Image for Shipping Custom Fields is Trivial as of 2026

Shipping Custom Fields is Trivial as of 2026

> How to ship one in less than 30 minutes

Cover Image for NextJS/JSS Edit Frames Before JSS v21.1.0

NextJS/JSS Edit Frames Before JSS v21.1.0

> It is possible. We have the technology.

Cover Image for Symposium 2022 Reflections

Symposium 2022 Reflections

> Sitecore is making big changes