[System.Object []] enthält keine Methode mit dem Namen 'replace'

Folgendes ist Teil der Datei edit07.html:
Von$array Ich kann auf das @ zugreif$empid = $user.employeeid und$seat = $user.Position. Der Teil, in dem sich Codeumbrüche befinden, ist

$filecontent = $filecontent.replace($pattern01,$new01)

Dies funktioniert mit PowerShell Version 3, aber ich bekomme

[System.Object []] enthält keine Methode mit dem Namen 'replace'

wenn ich es mit PowerShell Version 2 ausführe.

edit07.html:

</a></td>
</tr>
<tr>
<td height=1></td>
<td colspan=5></td>
<td colspan=3 rowspan=4 align=left valign=top><a
href="https://athena/empstatus/getcontact.asp?empid=238735#23-006&#13;">

</a></td>
<td></td>
<td colspan=2></td>
<td colspan=3 rowspan=4 align=left valign=top><a
href="https://athena/empstatus/getcontact.asp?empid=126086#23-017&#13;">

</a></td>
<td></td>
<td colspan=3 rowspan=4 align=left valign=top><a
href="https://athena/empstatus/getcontact.asp?empid=39#23-028&#13;">

Die Linie

href="https://athena/empstatus/getcontact.asp?empid=39#23-028&#13;">

muss ersetzt werden durch:

"href=""#"" data`enter code here`toggle=""tooltip""title=""$tooltip""onClick=""window.open('
https://athena/empsta   tus/getcontact.asp?empid=" + $empid + "','mywindow','width=282,height=325,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,copyhistory=no,resizable=no,style=text-`decoration:none')")

Das$array sieht wie folgt aus

Position     : 28-015
FirstName    : Marry
LastName     : Hay
PhoneNumber  : 448
Department   : IT
ComputerName : KURO-36
employeeid   : 245423
mail         : 

Position     : 28-016
FirstName    : Jimmy
LastName     : Jay
PhoneNumber  : 346
Department   : Researchers
ComputerName : SOBU-04
employeeid   : 231690
mail         : 

Position     : 28-018
FirstName    : Jack
LastName     : Johnson
PhoneNumber  : 454
Department   : Operations
ComputerName : SOBU-06
employeeid   : 384737
mail         : 

Position     : 28-022
FirstName    : Joe
LastName     : Blow
PhoneNumber  : 319
Department   : Operations
ComputerName : MITA-54
employeeid   : 100083
mail         : 
$fileContent = Get-Content 'c:\temp\edit07.html'

foreach ($user in $array) {
  $empid = $user.employeeid

  $fname = $user.FirstName
  $lname = $user.LastName
  $phone = $user.PhoneNumber
  $pc = $user.ComputerName
  $seat = $user.Position

  $tooltip = @"
$fname
$lname
$phone
$pc
$seat
"@

  $find01    = 'href="https://athena/empstatus/getcontact.asp?empid=' + $empid + '#' + $seat + '&#13;">'

  $replace01 = "href=""#"" data-toggle=""tooltip""title=""$tooltip""onClick=""window.open('https://athena/empstatus/getcontact.asp?empid=" + $empid +       "','mywindow','width=282,height=325,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,copyhistory=no,resizable=no,style=text-        decoration:none')"

  $empid
  $pattern01 = $find01
  $new01 = $replace01
  $strreplace01 = [regex]::replace($empid, $pattern01, $new01) 

  $filecontent = $filecontent.replace($pattern01,$new01)
  #$filecontent  -replace $pattern01,$new01
}

$fileContent | Set-Content 'c:\temp\edit08.html'

wenn ich PowerShell Version 2 verwende, wird folgende Fehlermeldung angezeigt:

Method invocation failed because [System.Object[]] doesn't contain a method
named 'replace'.
At line:38 char:40
+     $filecontent = $filecontent.replace <<<< ($pattern01,$new01)
    + CategoryInfo          : InvalidOperation: (replace:String) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

Ich habe auch versucht:

$filecontent = [System.IO.File]::ReadAllText($filecontent).replace($pattern01,$new01)

un

$filecontent -replace $pattern01,$new01

Antworten auf die Frage(6)

Ihre Antwort auf die Frage