Я пытаюсь создать простой скрипт, который может читать файл CSV и находить файлы (.jpg) с именами, содержащими содержимое CSV, а затем копировать эти файлы в новое место.
Содержимое CSV будет иметь следующий формат, «файлы» — это заголовок:
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
не нужно проверять имя файла; это просто замедляет работу. - person Maximilian Burszley   schedule 21.12.2017