powershell - 将Get-Childitem过滤为CSV的内容

标签 powershell csv get-childitem copy-item

我正在尝试使用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/

相关文章:

powershell - 在Powershell控制台和ISE中从脚本目录中点源文件?

youtube-dl 的 Powershell 脚本

c# - 从 C# 调用 Powershell 并处理异常

sql - 如何使用 sql 向 csv 文件添加新的换行符?

powershell - 如何跳过 Get-ChildItem 返回访问被拒绝的错误

c# - PowerShell Types.ps1xml 导入模块时找不到类型

csv - import-csv,get-aduser,然后export-csv筛选出不存在的AD用户

csv - 无法在 : file:/var/lib/neo4j/import with Neo4j docker image 加载外部资源

Powershell 4 Get-ChildItem 无法识别参数 DnsName,证书 :\LocalMachine\My works fine

Powershell Get-ChildItem -recurse不能获取所有项目