将Get-Childitem过滤为CSV的内容

问题描述 投票:1回答:1

我正在尝试使用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也没有获取文件。任何人都可以在我的代码中指出错误吗?

谢谢!

powershell csv get-childitem copy-item
1个回答
3
投票

当您使用Import-CSV时,每列的标题将成为属性名称。因此,csv的每一行都是一个具有Name属性的对象,而不是像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"
}
© www.soinside.com 2019 - 2024. All rights reserved.