[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 ">
</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 ">
</a></td>
<td></td>
<td colspan=3 rowspan=4 align=left valign=top><a
href="https://athena/empstatus/getcontact.asp?empid=39#23-028 ">
Die Linie
href="https://athena/empstatus/getcontact.asp?empid=39#23-028 ">
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 + ' ">'
$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