Вы должны не использовать для этого выражение invoke.Оригинальный ответ хорош:
$otherstring = $string.Replace(" ","_") + "_Results.txt"
Но на самом деле вы можете просто использовать $ (подвыражение):
$otherstring = "$($string.Replace(" ","_"))_Results.txt"
$ () говорит PowerShell вычислить это ПЕРЕД определением строки,
В качестве альтернативы вы также можете использовать форматирование строки:
$otherstring = "{0}_Results.txt" -f $string.Replace(" ","_")
Еще раз доказав, что с языками сценариев всегда существует более одного правильного пути ...