0

我做了像这样的脚本

$item_name = $item["Server_Name"]
$result = nslookup $item_name #a nslookup code to get the server's ip
$split = $result.tostring()

Caz 直接使用 split() 会失败,所以我习惯使用 String(),但它显​​示为 System.Object[]

如何从 $result 中获取内容

4

2 回答 2

0

调用可执行文件并将结果存储在变量中将为您提供与输出“行”相对应的字符串数组中的标准输出。

通常,如果要将字符串数组的元素组合成单个字符串,请使用-join <delimiter>. 如在

'one','two','three' -join 'xyz'
'one','two','three' -join "`r`n"

所以你可以做

$result = nslookup <servername>
$singleString = $result -join "`r`n"
<process $singleString here>

或者,如果您在输出中搜索特定的字符串模式,我喜欢使用这种模式,它单独处理每一行输出:

nslookup <server> |?{ $_ -match 'someregex' } |%{ <use $matches here to process> }
于 2012-09-12T20:20:24.743 回答
0

-join除了用于获取字符串数组并创建单个字符串之外,您还可以简单地将 nslookup 的输出通过管道传输到例如Out-String

$result = nslookup $server_name | Out-String
于 2012-09-12T20:33:38.490 回答