我正在尝试使用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
时,每列的标题将成为属性名称。因此,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"
}
关于powershell - 将Get-Childitem过滤为CSV的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47943294/