Toast 通知 - 在 link 上打开具有特定字符的网页

Toast Notification - Open a web page with specific character on the link

我已经使用 Powershell 和 XML 创建了 toast 通知来显示一些信息,现在我想使用按钮将用户重定向到特定网页。
问题是在网络 link 上,有一个特定的字符为“=”,我总是得到一个错误。 我尝试使用变量,不同类型的引号,现在我有点卡住了。 我得到的错误是:

Error: "'=' is an unexpected token. The expected token is ';'.

代码:

[xml]$Toast = @"
<toast scenario="$Scenario">
    <visual>
    <binding template="ToastGeneric">
        <group>
            <subgroup>
                <text hint-style="title" hint-wrap="true" >$TitleText</text>
            </subgroup>
        </group>
        <group>
            <subgroup>
                <text hint-style="Body" hint-wrap="true" >$BodyText1</text>
            </subgroup>
        </group>
        <group>
            <subgroup>     
                <text hint-style="base" hint-wrap="true" >$BodyText2</text>
            </subgroup>
        </group>
        <group>
            <subgroup>     
                <text hint-style="body" hint-wrap="true" >$BodyText3</text>
            </subgroup>
        </group>
    </binding>
    </visual>
    <actions>        
        <action arguments="https://part_of_the_link.aspx?C_ECRAN=HELP5_REQ_SYS&Type=LINK&Action=A&FieldName=C_OBJETSERVICE&FieldValue=THING" content="Open Web Page" activationType="protocol" />
        <action activationType="system" arguments="dismiss" content="$DismissButtonContent"/>
    </actions>
</toast>
"@

错误消息可能会让您失望,因为 URL 的问题实际上不是 =,而是您没有转义文字 & 符号 (&) 在字符串中 param=value 对之前。

在 PowerShell 中转义字符串的最简单方法可能是 [SecurityElement]::Escape():

[xml]$Toast = @"
<toast scenario="$Scenario">
    <visual>
    <binding template="ToastGeneric">
        <group>
            <subgroup>
                <text hint-style="title" hint-wrap="true" >$TitleText</text>
            </subgroup>
        </group>
        <group>
            <subgroup>
                <text hint-style="Body" hint-wrap="true" >$BodyText1</text>
            </subgroup>
        </group>
        <group>
            <subgroup>     
                <text hint-style="base" hint-wrap="true" >$BodyText2</text>
            </subgroup>
        </group>
        <group>
            <subgroup>     
                <text hint-style="body" hint-wrap="true" >$BodyText3</text>
            </subgroup>
        </group>
    </binding>
    </visual>
    <actions>        
        <action arguments="$([System.Security.SecurityElement]::Escape('https://part_of_the_link.aspx?C_ECRAN=HELP5_REQ_SYS&Type=LINK&Action=A&FieldName=C_OBJETSERVICE&FieldValue=THING'))" content="Open Web Page" activationType="protocol" />
        <action activationType="system" arguments="dismiss" content="$DismissButtonContent"/>
    </actions>
</toast>
"@