function ConvertTo-SafeTeamCityMessage { <# .SYNOPSIS Converts strings to sanitized strings that are safe to use for TeamCity Service Messages. .EXAMPLE ConvertTo-SafeTeamCityMessage "I have a | pipe" will return "I have a || pipe" .INPUTS Input: String also can be null input .OUTPUTS Output: String #> param( [Parameter(Mandatory = $true)] [AllowEmptyString()] [string] $InputText ) $sanitizedText = $InputText $charactersToEscape = @( "|", "'", "’", "[", "]") foreach ($char in $charactersToEscape) { $sanitizedText = $sanitizedText.Replace($char, "|$char") } $sanitizedText = $sanitizedText.Replace("`r", "|r") $sanitizedText = $sanitizedText.Replace("`n", "|n") return ($sanitizedText) }