我正在尝试使用PowerShell创建一个哈希表,其中键是一个服务器名,它有多个值,其中一些是数组。
Key = SERVERNAME
值:
ServerID(单一ID值)
GroupIDs(ID值数组,与下面的特定组名绑定)
GroupName(值数组,与上面数组中的特定组ID绑定)
我正在遍历服务器列表并尝试构建它。
$ServerHashTable = @{}
$ServerHashTable.ServerName = @()
$ServerHashTable.ServerID = @()
$ServerHashTable.GroupName = @()
$ServerHashTable.GroupID = @()
$ServerHashTable.ServerName += $ServerName
$ServerHashTable.ServerID += $ServerID
$ServerHashTable.GroupName += $GroupName
$ServerHashTable.GroupID += $GroupID
我遇到的问题是该密钥似乎不是服务器名称,我不确定在添加它们时如何链接GroupID和GroupNames。
感谢您对此的任何帮助
答案 0 :(得分:1)
您可能想要使用的数据结构看起来像是一个对象而不是一个键/值(单数)的哈希表。
$ServerName = 'ExampleServerName'
$ServerID = 12345
$GroupName = @('ExampleGroup1','ExampleGroup2')
$GroupIDs = @(1,2,3)
$Servers = @()
$Servers += [pscustomobject]@{
ServerName = $ServerName
ServerID = $ServerID
GroupName = $GroupName
GroupID = $GroupID
}
然后您可以使用Where-Object
来过滤名称
$Servers | Where-Object {$_.ServerName -eq 'ExampleServerName'}
请注意,[pscustomobject]
类型加速器是版本3或更高版本。早期版本需要使用New-Object
。
答案 1 :(得分:1)
我认为你误解了哈希表是如何工作的。在您的情况下,library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fileInput("GimmeCSV", "Upload a CSV", multiple = F),
textInput("inFile", "Name for Output"),
downloadLink("downloadData", "Download")
),
mainPanel(
tableOutput("table.preview"),
tableOutput("table.output")
)
)
)
server <-function(input,output){
inputFile <- reactiveValues(file = NULL)
outputFile <- reactiveValues(file=NULL)
observeEvent(input$GimmeCSV, {
inFile <- input$GimmeCSV
data <- read.csv(inFile$datapath, header=TRUE, sep=";")
inputFile$file <- data
})
output$table.preview <- renderTable({
head(inputFile$file)
})
output$table.output <- renderTable({
tbl <- inputFile$file
outputFile$file <- tbl
tbl
})
output$downloadData <- downloadHandler(
filename = function() {
paste(input$inFile, '.csv', sep='')
},
content = function(file) {
write.csv(outputFile$file, file)
}
)
}
shinyApp(ui, server)
,ServerName
,ServerID
和GroupName
都是关键。每个都有一个数组作为相应的值。
目前尚不清楚您正在尝试做什么,但自定义对象的集合可能更合适。你如何构建它们将取决于你如何收集/循环数据,但一般来说,你可以做这样的事情:
GroupID