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

実行可能ファイルを呼び出して結果を変数に格納すると、出力の「行」に対応する文字列配列で標準出力が得られます。

通常、文字列配列の要素を 1 つの文字列に結合する場合は、 を使用します-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 に答える