Home > Windows にまつわる e.t.c.

コマンド出力の配列化


ipconfig 等のコマンド出力を Out-String して PowerShell で扱おうとすると、出力が「改行付きの文字列」として出力されるので扱い辛いです。

これを行単位で分割(「`n」で分割)して文字列配列に変換すると、少し扱いやすくなります。
(そのまま分割すると「`r」がゴミとして残るので、分割前に消します)

$IPaddress = ipconfig /all | Out-String
$IPaddress = $IPaddress -replace "`r",""
$IPaddress = $IPaddress -split "`n"
$IPaddress[5]
   ノード タイプ . . . . . . . . . . . .: ブロードキャスト

$IPaddress.GetType().Name
String[]

 

あとは foreach で回すなりお好きなように

 

後で気が付いたのですが、 Out-String ではなく、直接代入するとオブジェクトとしての文字列配列になりました。

$IPaddress = ipconfig /all
$IPaddress[5]
   ノード タイプ . . . . . . . . . . . .: ブロードキャスト

$IPaddress.GetType().Name
Object[]

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.