質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

1回答

2435閲覧

PowerShellで配列の結合を行いたいです。

AG1130

総合スコア2

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2021/12/21 21:56

編集2021/12/21 22:01

$A

BaseName CreationTime


a 2021/01/01 00:00:01
b 2021/01/01 00:00:02
c 2021/01/01 00:00:03
d 2021/01/01 00:00:04

$B

BaseName カタカナ ひらがな


a アイウエオ あいうえお
b カキクケコ かきくけこ
c サシスセソ さしすせそ
d タチツテト たちつてと

IsPublic IsSerial Name BaseType


True True String System.Object
True True String System.Object

上記のような引数があり、状態はこのような形とします。
これの"BaseName"で同じ内容の箇所を結合させて、

BaseName カタカナ ひらがな CreationTime


a アイウエオ あいうえお 2021/01/01 00:00:01
b カキクケコ かきくけこ 2021/01/01 00:00:02
c サシスセソ さしすせそ 2021/01/01 00:00:03
d タチツテト たちつてと 2021/01/01 00:00:04

のような表記にしたいと考えているのですが、実施する方法を教えていただけますでしょうか。
説明があいまいで申し訳ありません。何卒宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

サンプルプログラムです。

PowerShell

1Write-host '■新規作成$c' 2 3$a = オブジェクトを入れてください 4$b = オブジェクトを入れてください 5 6$aaaa = @() # BaseName 7$bbbb = @() # カタカナ 8$cccc = @() # ひらがな 9$dddd = @() # CreationTime 10foreach ($ai in 0..($a.count-1)){ 11 foreach ($bi in 0..($b.count-1)){ 12 if ( $a[$ai].BaseName -eq $b[$bi].BaseName ){ 13 $aaaa += $a[$ai].BaseName 14 $bbbb += $b[$bi]."カタカナ" 15 $cccc += $b[$bi]."ひらがな" 16 $dddd += $a[$ai].CreationTime 17 } 18 } 19} 20$PSC = [ordered]@{} 21$c = foreach ($i in 0..($aaaa.count-1)){ 22 $PSC["BaseName"] = $aaaa[$i] 23 $PSC["カタカナ"] = $bbbb[$i] 24 $PSC["ひらがな"] = $cccc[$i] 25 $PSC["CreationTime"] = $dddd[$i] 26 [PSCustomObject]$PSC 27 } 28$c | Format-Table * -AutoSize -Wrap

実行結果

PowerShell

1■新規作成$c 2 3BaseName カタカナ ひらがな CreationTime 4-------- -------- -------- ------------ 5a アイウエオ あいうえお 2021/01/01 00:00:01 6b カキクケコ かきくけこ 2021/01/01 00:00:02 7c サシスセソ さしすせそ 2021/01/01 00:00:03 8d タチツテト たちつてと 2021/01/01 00:00:04

■注意事項■

※ $aと$bにオブジェクトを入れてください。

※ $cを新規作成します。

※ ご利用に際し如何なる損失や損害が発生しても、一切の責任を負いかねます。

※ 件数が多い場合、お時間が必要です。

※ $aと$bの配列は、同じ個数に揃えてください。

※配列に、同じBaseNameが「複数存在する」場合は、このプログラムを「絶対に使用しない」で
ください!

投稿2021/12/22 06:26

編集2021/12/22 21:48
ccc-

総合スコア356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AG1130

2021/12/27 08:07

こちらで実行してみます。 ありがとうございます。
ccc-

2021/12/27 12:21

年末のお忙しい中、「お返事」と「ベストアンサー」ありがとうございました。 AG1130様の環境が分からないので、表示されない理由につきまして お答え致しかねます。お役に立てず申し訳ございません。 厳しい寒さが続いています。どうか暖かくして、お体に気を付けてください。。。
Zuishin

2021/12/27 12:48

おそらく $B の最後にゴミが入っているからでしょう。 $A と $B を定義できるコードがなければ話になりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問