所以這裏是我想要完成的。Powershell:比較兩個數組之間的值,並提取相關的值
我有一個新的首發,新品首發Form.csv,具有以下標題和信息的表格:
名字,姓氏,teamname,STARTDATE
喬,布洛格斯,安全管理員,01/01/18
我有不同的CSV叫團隊List.csv,具有以下標題和信息:
teamlead,teamname,resgroup
AB,市場營銷,RESMARKETING01G
CD,產品,RESPRODUCT01G
EF,廣告,RESADVERTISING01G
GH,安全管理,RESSECURITYADMIN01G
我想將兩個CSV文件導入到Powershell中,運行一個comparisson,它從New Starter Form獲取團隊名稱,一個d檢查隊列表中是否有任何匹配,如果是,則將相關RES組添加到AD中的新起始者。
目前,我可以導入它們,對它們進行比較,找到一個匹配項並找到記錄的索引號,但是我正在努力獲取該索引號,並使用它來獲得相關的RES組。到目前爲止,代碼如下所示:
$teamlist = import-csv "\\location\Team List.csv"
$newstarter = import-csv "\\otherlocation\New Starter Form.csv"
[string]$teamname = Compare-Object -includeequal -excludedifferent -PassThru $newstarter.teamname $teamlist.teamname
$teamname
[array]::indexof($teamlist,$teamname)
和運行,爲我們提供了這樣的控制檯,可見我們確實能看到比賽,而匹配的記錄是最後一個(-1)之一:
PS C:\WINDOWS\system32> $teamlist = import-csv "\\location\Team List.csv"
$newstarter = import-csv "\\otherlocation\New Starter Form.csv"
[string]$teamname = Compare-Object -includeequal -excludedifferent -PassThru $newstarter.teamname $teamlist.teamname
$teamname
[array]::indexof($teamlist,$teamname)
Security Administration
-1
我沒有得到很多的經驗,使用PowerShell,我的編碼知識是相當有限的整體,但我已經習慣了,我可以索引值保存爲一個變量的概念,然後我可以調用該變量來執行諸如$teamlist.resgroup[VARIABLE HERE]
之類的操作。 但是,如果我嘗試在[array]::indexof($teamlist,$teamname)
之前聲明一個新變量,Powershell並不開心。我相信一個可能的選擇可能是添加一個巨大的switch語句,但我可能正在考慮擁有100多個團隊,我想避免無效代碼出現在任何地方我可以。我是否缺少明顯的東西?有沒有更好的方法(或者甚至只是一種功能良好的方式!),這可能會起作用?
任何幫助,您可以提供將不勝感激!
這簡單得多,而且很有魅力,非常感謝! – HMNIW
沒問題。樂意效勞 :) – TechSpud