2016-06-28 7 views
4

相対的な初心者を出力します。私はシンプルなCSVファイルを持っています:Powershell Import-CSVはPSで "@ {"

Computer,Team 
server,team1 
server2,team2 
server3,team2 

このリストをPSにインポートします。私はそれを期待して$ SERVERLISTと$サーバーの

$Serverlist = import-csv "c:\temp\appsupportAll.txt" 
$Servers = $Serverlist | Select Computer 
Foreach ($Computer in $Servers) 
    {etc etc} 

出力されます。私は、私は、各コンピュータ名に対してクエリを実行するために使用する次のコマンドを使用します。 ?私は私が間違って何をしてくださいやっているなど、「サーバー2」、「server3の」、「サーバー」を探しています

@{$_.Computer=server} 
@{$_.Computer=server2} 
@{$_.Computer=server3} 
etc 

:ただし、各$コンピュータは、次のようにPSに提示されますかあなたのforeachループ内の

おかげ

答えて

3

$Computerは、あなたが探しているだけの値ではありません。本質的には、「コンピュータ」という1つのプロパティを持つカスタムオブジェクトです。あなただけのシングル「コンピュータ」プロパティの文字列表現をしたい場合は、そのようselect -ExpandPropertyを使用します。

$Serverlist = import-csv "c:\temp\appsupportAll.txt" 
Foreach ($Computer in $serverlist.Computer) 
    {etc etc} 

か、あなたが必要な場合:

$Serverlist = import-csv "c:\temp\appsupportAll.txt" 
$Servers = $Serverlist | Select -ExpandProperty Computer 
Foreach ($Computer in $Servers) 
    {etc etc} 

またはそれ以上簡単に、あなたはこれを書くことができますより多くの特性:

$Serverlist = import-csv "c:\temp\appsupportAll.txt" 

foreach ($server in $serverlist) { 
    $server.team 
    $server.computer 
} 
+0

美しい!私は実際にこれを同じスクリプトの他の場所で既に行っていることを知っていたはずです!おかげで百万 – JDGEEK

+0

私の答えを受け入れる! :) –

+0

私は "シンプルな"方法を得ることができませんでしたが、空白になる。私は最初に満足しています。私はまた、コンピュータが関連するチームを – JDGEEK

関連する問題