2014-02-28 73 views
0

我的价值观阅读使用进口-CSV,其中包括服务器名,IP地址和记场查找对象的数组值

CSV文件是否有一个内置的机制来发现一个基于服务器名称的对象,而不必遍历整个数组?我想让数组在内存中多次使用。

$ServerList = Import-Csv ".\ServerList.csv" 

我使用Powershell Studio创建一个GUI,并从文件中读入所有服务器名称来填充下拉列表。用户会选择从下拉列表中选择服务器,并会出现按钮来执行使用读取的IP地址,该服务器上的行动。

回答

0

你可以填充从CSV数据哈希表,使用ServerName关键:

$ServerList = @{} 
Import-Csv '.\ServerList.csv' | % { $ServerList[$_.ServerName] = $_ } 

这样,你可以访问这些数据是这样的:

$server = 'foo' 
$ServerList[$server].IPAddress 
0
$csv = Import-csv my.csv | where {$_.servername -eq "MyServer"} 
foreach ($server in $csv) { 
# Do your thing 
} 
+0

我没有提到我保持阵列多次访问 –

+0

您是否有一些我们可以看到的示例代码? –

0

如果需要多次调用它,你可以使用你调用一个函数当用户选择的服务器:

function getServer($selectedServer){ 
    $ServerInfo = Import-Csv ".\ServerList.csv" | where {$_.servername -eq $selectedServer} 
    return $ServerInfo 
} 

当用户进行选择的代码想像这样:

$Server = getServer('ABCSRV') 

然后$Server.IP$Server.Notes将拥有来自该特定服务器的信息,并授予您在csv中具有这些列。