将 Get-Childitem 过滤为 CSV 的内容

Filter Get-Childitem to contents of CSV

我正在尝试使用 CSV 内容过滤 Get-Childitem cmdlet。

CSV 内容:

Files
------
B000000001
B000000002

实际文件名:

B000000001.PT01.jpg
B000000002.PT03.jpg

这是我的:

$ASINs = Import-Csv "C:\share_test.csv"
foreach($ASIN in $ASINs){
   echo $ASIN
   Get-ChildItem -Path "C:\test1" -Filter "*$ASIN*" | Copy-Item -Destination "C:\test2"
}

相似的项目没有复制,但回显 Get-Childitem cmdlet 也没有拾取文件。谁能指出我代码中的错误?

谢谢!

当您使用 Import-CSV 时,每列的 header 将成为 属性 名称。所以你的 csv 的每一行都是一个 object 和一个名称 属性 而不是像你从 Get-Content.

得到的字符串数组

您可以使用子表达式运算符 $() 在过滤器中插入 $ASIN.Files

$ASINs = Import-Csv "C:\share_test.csv"
foreach ($ASIN in $ASINs) {
    Get-ChildItem -Path "C:\test1" -Filter "*$($ASIN.Files)*" | Copy-Item -Destination 
    "C:\test2"
}