我正在使用Import-Csv从CSV文件中读取值,其中包括服务器名称,IP地址和注释字段
是否有内置机制来根据服务器名称查找对象而无需遍历整个数组?
我将数组保留在内存中多次使用。
$ServerList = Import-Csv ".\ServerList.csv"
我正在使用Powershell Studio创建一个GUI,并填充一个下拉列表,其中包含从文件中读入的所有服务器名称。用户将从下拉列表中选择一个服务器,并且将有按钮使用读入的IP地址在该服务器上执行操作。
答案 0 :(得分:0)
$csv = Import-csv my.csv | where {$_.servername -eq "MyServer"}
foreach ($server in $csv) {
# Do your thing
}
答案 1 :(得分:0)
如果需要多次调用,可以使用用户选择服务器时调用的函数:
function getServer($selectedServer){
$ServerInfo = Import-Csv ".\ServerList.csv" | where {$_.servername -eq $selectedServer}
return $ServerInfo
}
当用户做出选择时,代码就像这样:
$Server = getServer('ABCSRV')
然后$Server.IP
和$Server.Notes
将获得该特定服务器的信息,并授予您在csv中使用这些列的权限。
答案 2 :(得分:0)
您可以使用服务器名称作为密钥填充带有CSV数据的哈希表:
$ServerList = @{}
Import-Csv '.\ServerList.csv' | % { $ServerList[$_.ServerName] = $_ }
这样你可以像这样访问数据:
$server = 'foo'
$ServerList[$server].IPAddress