ここで私が達成しようとしているのはここです。Powershell:2つの配列間の値を比較し、関連する値を抽出する
ファーストネーム、姓、TEAMNAMEは、
ジョー、Bloggs、セキュリティ管理を開始日:
は、私は以下のヘッダ情報を持つ新しいスターター、新しいスターターForm.csv、ためのフォームを持っています
:/1月18日01 Iは、次のヘッダー情報を有しているチームList.csvと呼ばれる異なるCSVを有します
teamlead、TEAMNAME、resgroup
AB、マーケティング、RESMARKETING01G
CD、プロダクト、
EF、広告、RESADVERTISING01G
GH、セキュリティ管理、RESSECURITYADMIN01G
RESPRODUCT01G私は両方のCSVファイルをPowershellにインポートし、新しいスターターフォームからチーム名を取って比較を実行したい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を使用し多くの経験を持っていませんでした、と私のコーディングの知識はかなり全体的に限られているが、私は変数としてインデックス値を保存することができます概念に慣れて、その後、Iその変数を$teamlist.resgroup[VARIABLE HERE]
のようなものに戻すことができます。 しかし、私が試みて、[array]::indexof($teamlist,$teamname)
の前に新しい変数を宣言すると、Powershellは満足できません。
私はそれを調べていませんが、巨大なswitch文を追加する可能性があると思いますが、100以上のチーム全体を見ているかもしれないので、非効率なコードは避けてくださいできます。私は何かを明らかに欠いていますか?これがうまくいくかもしれないよりよい方法がありますか?
ご提供いただけるご支援をお待ちしております。
これははるかに簡単であり、魅力のように動作します、ありがとう! – HMNIW
問題ありません。喜んで:) – TechSpud