【发布时间】:2017-12-20 20:41:53
【问题描述】:
我正在尝试创建一个可以读取 CSV 文件的简单脚本,并查找名称包含 CSV 内容的文件 (.jpgs),然后将这些文件复制到新位置。
CSV 内容将采用以下格式,'files' 是标题:
Files
------
B000000001
B000000002
文件名将采用以下格式:
B000000001.PT01.jpg
B000000002.PT03.jpg
这是我目前所拥有的:
$ASINs = Import-Csv "C:\share_test.csv"
foreach($ASIN in $ASINs){
GCI -Path "C:\test1" | Where-Object{$_.Name -like $ASIN} | Copy-Item -Destination "C:\test2"
}
我没有收到错误,但它没有复制匹配的文件。当它得到这个特定的时候,我似乎总是遇到 Copy-Item 的问题,所以任何帮助表示赞赏。
编辑: 好的,谢谢大家的建议。这就是我现在拥有的:
$ASINs = Import-Csv "C:\share_test.csv"
foreach($ASIN in $ASINs){
GCI -Path "C:\test1" -Filter '*$ASIN*' | Copy-Item -Destination "C:\test2"
}
仍然没有骰子!我究竟做错了什么?我试过 -Filter 加引号和不加引号。
再次感谢!
【问题讨论】:
-
您没有收到任何错误,因为您没有正确比较对象并且您的管道是空的。
Get-ChildItem -Path 'C:\test1' -Filter *$ASIN*,不需要Where-Object来验证文件名;它只会减慢速度。
标签: powershell import-csv