2

わかりましたので、私はpowershellにかなり慣れていないので、ヘッダーを持たないcsvファイルをインポートできます。(手動で追加します)私の配列は次のようになります。

Servers
Plab2
192.168.10.204

「Plab2」または「192.168.10.204」を取得する代わりに配列をループすると、「@{Server=Plab2}」または「@{Server=192.168.10.204」が得られます値を取得する方法はありますか「Plab2」または「192.168.10.204」?

これが私のコードです

$list = Import-Csv $inputFile -Header Server
For($i=0; $i -le $List.Count -1; $i++){
$b = $List[$i][0]
Write-Host $b
}
4

2 に答える 2

3

得られる形式は、配列内の各オブジェクトが「サーバー」プロパティを持つオブジェクトであるためです ( -Header Server.

あなたのファイルは csv ファイルではありません。csv ファイルには、同じオブジェクトのプロパティ (名前や IP など) が 1 つの行にあり、区切り文字 (コンマ,など) で区切られています。したがって、次のいずれかを実行できます。

を使用してファイルを純粋なテキストとして読み取り、Get-Content要素 (名前と IP) を選択します。

$arr = Get-Content $inputFile
$arr[1]
$arr[2]

Plab2
192.168.10.204

Serverループ内の各オブジェクトのプロパティにアクセスして、値を取得できます。

Import-Csv $inputFile -Header Server | ForEach-Object {
    Write-Host $_.Server
}

Servers
Plab2
192.168.10.204

ファイルを適切な csv 形式に書き換えることもできます。例:

csv ファイル:

ServerName,IP
Plab2,192.168.10.204

脚本:

Import-Csv $inputFile | % {
    $_.ServerName
    $_.IP
}

Plab2
192.168.10.204
于 2013-06-04T21:26:23.940 に答える