如果我走
$c = Resolve-DnsName facebook.com -Type TXT -Server '8.8.8.8'
當我進入時,$c我得到
Name Type TTL Section Strings
---- ---- --- ------- -------
facebook.com TXT 7200 Answer {v=spf1 redirect=_spf.facebook.com}
facebook.com TXT 7200 Answer {google-site-verification=A2WZWCNQHrGV_TW
wKh6KHY90tY0SHZo_RnyMJoDaG0s}
facebook.com TXT 7200 Answer {google-site-verification=wdH5DTJTc9AYNwV
unSVFeK0hYDGUIEOGb-RReU6pJlY}
我如何擴展$c.strings?
我知道我可以得到擴展的字串并失去其余的
Resolve-DnsName facebook.com -Type TXT -Server '8.8.8.8' | Select-Object -ExpandProperty strings
如何擴展整個答案?
uj5u.com熱心網友回復:
您可以使用計算屬性將 轉換string[]為string:
PS /> $c[0].strings.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String[] System.Array
Resolve-DnsName google.com -Type TXT -Server '8.8.8.8' |
Select-Object Name,Type,TTL,Section,@{n='Strings';e={[string]$_.Strings}}|
Format-Table
結果是:
Name Type TTL Section Strings
---- ---- --- ------- -------
google.com TXT 3600 Answer docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e
google.com TXT 3600 Answer google-site-verification=wD8N7i1JTNTkezJ49swvWW48f8_9xveREV4oB-0Hf5o
google.com TXT 3600 Answer docusign=1b0a6754-49b1-4db5-8540-d2c12664b289
google.com TXT 3600 Answer google-site-verification=TV9-DBe4R80X4v0M4U_bd_J9cpOJM0nikft0jAgjmsQ
google.com TXT 3600 Answer globalsign-smime-dv=CDYX XFHUw2wml6/Gb8 59BsH31KzUr6c1l2BPvqKX8=
google.com TXT 3600 Answer MS=E4A68B9AB2BB9670BCE15412F62916164C0B20BB
google.com TXT 3600 Answer apple-domain-verification=30afIBcvSuDV2PLX
google.com TXT 3600 Answer v=spf1 include:_spf.google.com ~all
google.com TXT 3600 Answer facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95
如果Strings使用此屬性的屬性中有多個字串,則如下所示:
Name Type TTL Section Strings
---- ---- --- ------- -------
google.com TXT 3339 Answer docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e
如果你想要一個multiline string,你可以使用Out-String但是首先需要trim()輸出,如果你希望它在控制臺上正確顯示,也可以使用-Wrapon Format-Table。
docusign=05958488在這種情況下使用硬編碼值的代碼示例:
Resolve-DnsName google.com -Type TXT -Server '8.8.8.8' |
Select-Object Name,Type,TTL,Section,@{n='Strings';e={('docusign=05958488','docusign=05958488' | Out-String).Trim()}}|
Format-Table -Wrap
您還可以使用-join運算子將字串與CRLF( `r`n) 連接起來以獲得 a multiline string:
Resolve-DnsName google.com -Type TXT -Server '8.8.8.8' |
Select-Object Name,Type,TTL,Section,@{n='Strings';e={'docusign=05958488','docusign=05958488' -join "`r`n"}}|
Format-Table -Wrap
兩個片段都會導致:
Name Type TTL Section Strings
---- ---- --- ------- -------
google.com TXT 3574 Answer docusign=05958488
docusign=05958488
google.com TXT 3574 Answer docusign=05958488
docusign=05958488
google.com TXT 3574 Answer docusign=05958488
docusign=05958488
...
...
...
如果您想要一個腳本可以處理這兩種情況,Strings只有一個值和Strings多個值,您可以使用以下內容:
$result = Resolve-DnsName google.com -Type TXT -Server '8.8.8.8'
# Add random values to Strings for testing
$result.ForEach({$_.Strings = Get-Random})
$result = foreach($element in $result)
{
$out = @{
Name = $element.Name
Type = $element.Type
TTL = $element.TTL
Section = $element.Section
}
$element.Strings.ForEach({
$out.Strings = $_
[pscustomobject]$out
})
}
$result | Format-Table
這將重新創建添加一個新元素的物件,if其中有多個值:
TTL Section Name Type Strings
--- ------- ---- ---- -------
3444 Answer google.com TXT apple-domain-verification=30afIBcvSuDV2PLX
3444 Answer google.com TXT 1419241945
3444 Answer google.com TXT MS=E4A68B9AB2BB9670BCE15412F62916164C0B20BB
3444 Answer google.com TXT 463070462
3444 Answer google.com TXT facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95
3444 Answer google.com TXT 958788674
3444 Answer google.com TXT google-site-verification=TV9-DBe4R80X4v0M4U_bd_J9cpOJM0nikft0jAgjmsQ
3444 Answer google.com TXT 1623605637
...
...
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/338504.html
標籤:电源外壳
