关于powershell字符串拆分的问题()

时间:2012-09-12 20:12:17

标签: powershell powershell-v2.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

中的内容

2 个答案:

答案 0 :(得分:0)

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

通常,如果要将字符串数组的元素组合为单个字符串,请使用-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> }

答案 1 :(得分:0)

除了使用-join获取字符串数组并创建单个字符串之外,您可以简单地将nslookup的输出传递给Out-String,例如:

$result = nslookup $server_name | Out-String