Powershell: fuerza evaluación inmediata de la referencia inversa durante la sustitución

Me encuentro con un error en el que estoy concatenando cadenas para obtener el campo que quiero reemplazar.

A continuación se muestra un ejemplo de lo que hace mi script:

$TEXTTOREPLACEWITH= '6Q'

(Get-Content testfile.html) | ForEach-Object { $_ -replace '(.*)\$\(STRINGTOREPLACE\)(.*)', ('$1' +$TEXTTOREPLACEWITH+'$2')

Si ejecuté esto contra un archivo que tenía una entrada de línea como sigue:

abc$(STRINGTOREPLACE)xyz

Espero la siguiente salida:

abc6Qxyz

INSTEAD, cuando ejecuto este script, el resultado es el siguiente:

$16Qxyz

Supongo que esto se debe al hecho de que las referencias inversas no se deben resolver hasta que se complete la concatenación de cadenas. ¿Hay alguna manera en PowerShell de seguir adelante y resolver estas referencias inversas de inmediato y evitar la salida que estoy viendo?

Gracias,

Josh

Respuestas a la pregunta(2)

Su respuesta a la pregunta