質問の現在のバージョン:
配列$tbd_listを次のように初期化します。
$tbd_list = @()
foreach($i in $tbd) {
# -- If statement prevents duplicate id's
if(!($tbd_list -match $i.id)){
$tbd_list += $i.id
}
}
この時点で、$ tbd_listを出力すると、次のようになります。
"dce50fdd-2298-45db-8aac-fb13a176fe1a*.*"
"79c1538f-09b1-4ed7-b84c-ff1a7934596a*.*"
"60511686-7a87-4352-a781-62e7c04913e5*.*"
"0821f8ee-c1ca-4568-ab68-bb5e30d07268*.*"
"3b9f5da0-fc2d-49e3-a11d-943f5ac2296a*.*"
"ff7720fd-2c0f-43c8-871a-e283f231c823*.*"
($ tbd_list.GetType()。FullNameはSystem.Objectを返します)
次に、次のコードを実行しようとします。
Get-ChildItem F:\store_test\ -Recurse -Include $tbd_list
しかし、私は見返りに何も得られません。
ただし、これを手動で入力すると、次のようになります。
$tbd_list = "dce50fdd-2298-45db-8aac-fb13a176fe1a*.*", "79c1538f-09b1-4ed7-b84c-ff1a7934596a*.*", "60511686-7a87-4352-a781-62e7c04913e5*.*", "0821f8ee-c1ca-4568-ab68-bb5e30d07268*.*", "3b9f5da0-fc2d-49e3-a11d-943f5ac2296a*.*", "ff7720fd-2c0f-43c8-871a-e283f231c823*.*"
この時点で、$ tbd_listを出力すると、次のようになります。
"dce50fdd-2298-45db-8aac-fb13a176fe1a*.*"
"79c1538f-09b1-4ed7-b84c-ff1a7934596a*.*"
"60511686-7a87-4352-a781-62e7c04913e5*.*"
"0821f8ee-c1ca-4568-ab68-bb5e30d07268*.*"
"3b9f5da0-fc2d-49e3-a11d-943f5ac2296a*.*"
"ff7720fd-2c0f-43c8-871a-e283f231c823*.*"
同じ行を実行します($ tbd_list.GetType()。FullNameは引き続きSystem.Objectを返します):
Get-ChildItem F:\store_test\ -Recurse -Include $tbd_list
それは完璧に動作します。助言がありますか?
解決
以下の両方の答えは正しいですが、私は1つしか選択できません。
変数が配列であることを確認した後、先頭と末尾の引用符を削除する必要があり、スクリプトが機能します。ありがとう!