11

PowerShell で char 配列を文字列に変換するさまざまな方法を読みましたが、どれも私の文字列では機能しないようです。私の文字列のソースは次のとおりです。

$ComputerName = "6WMPSN1"
$WarrantyURL = "http://www.dell.com/support/troubleshooting/au/en/aulca1/TroubleShooting/ProductSelected/ServiceTag/$ComputerName"
$WarrantyPage = Invoke-WebRequest -Uri $WarrantyURL
$WPageText = $WarrantyPage.AllElements | Where-Object {$_.id -eq "TopContainer"} | Select-Object outerText

結果の WPageText は Char 配列であるため、Select-String -Pattern "days" -Context を使用できません

私はもう試した:

$WPageText -join
[string]::Join("", ($WPageText))

http://softwaresalariman.blogspot.com.au/2007/12/powershell-string-and-char-sort-and.htmlに従って

これまでに成功したことは次のとおりです。

$TempFile = New-Item -ItemType File -Path $env:Temp -Name $(Get-Random)
$WPageText | Out-File -Path $TempFile
$String = Get-Content -Path $TempFile

ファイルの書き込みと読み取り以外にこれを行う方法はありますか?

4

4 に答える 4

7

これを行うための安価な方法は、$ofs変数を変更し、配列を文字列で囲むことです。$ofsfrom.NETを使用して配列を印刷するための内部PSセパレーターですObject.ToString()

$a = "really cool string"
$c = $a.ToCharArray()
$ofs = '' # clear the separator; it is ' ' by default
"$c"

System.String次のようなコンストラクターを使用することもできます(すべきです) 。

$a = "another mind blowing string"
$result = New-Object System.String ($a,0,$a.Length)
于 2012-10-05T18:57:40.943 に答える
6

char 配列を文字列に変換する最速の方法:

[String]::new($WPageText)
于 2019-06-07T08:20:39.433 に答える
0

あなたが探しているものが何であれ、私はあなたが何かを見逃していると思います$WPageText. あなたが見てみると、PSCustomObjectあなたが興味を持ってouterTextいるのは文字列です。

PS C:\PowerShell> $WPageText | Get-Member

   TypeName: Selected.System.Management.Automation.PSCustomObject

Name        MemberType   Definition                                                                                           ----        ----------   ----------                                              
Equals      Method       bool Equals(System.Object obj)                                                                                                                               
GetHashCode Method       int GetHashCode()                                                                                                                                            
GetType     Method       type GetType()                                                                                                                                               
ToString    Method       string ToString()                                                                                                                                            
outerText   NoteProperty System.String outerText= ...  

そう

PS C:\PowerShell> $WPageText.outerText 

 Precision M6500 
Service Tag: 6WMPSN1 

 Select A Different Product > 
Warranty Information 
Warranty information for this product is not available. 
于 2012-10-06T04:58:45.783 に答える