![]() |
Поиск файлов из списка
Только недавно начал изучать powershell поэтому решаю задачи в силу своих знаний.
Подскажите как мне реализовать следующую задачу. Есть файл CSV в котором есть названия файлов (по одному на каждую стоку) и эти файлы надо найти в куче подпапок. Я вижу решение этой задачи следующим образом Читаем содержимое файла | foreach-object { Ищем каждый объект в подпапках | копируем файлы в нужное место } Начал делать и сразу же столкнулся с проблемой. cat patch\file.csv | foreach (get-childitem d:\folder\ -include $_ -recurse) Получаю ошибку ForEach-Object : Не удается преобразовать "System.Object[ ]" в тип "System.Management.Automation.ScriptBlock", необходимый для параметра "Process". Specified method is not supported Подскажите каким образом можно по конвееру передать строки из файла (если знаете уже готовые решения по такому вопросу - будит вообще замечательно) |
Разобрался надо было всего лишь поставить после foreach "- process"
Вот что получилось (содержимое файла ps1) cat ..\compare.csv | foreach -Process{get-childitem G:\CheckData\zakupka\ -include $_ -recurse | foreach -process {copy-item $_ G:\CheckData\zakupka_2\} } 1я строка - считываем информацию из файла 2я строка - ищим файлы в нужной папке (и подпапках) 3я строка - копируем эти файлы в нужную папку *Есть минус - если находит более одного экземпляра файла - второй не будет копировать (и выдаст ошибку, что файл уже существует) |
Добрый день,
Frenzy, тоже недавно изучаю Powershell Код:
$read = Get-Content .\test.csv Нужно бежать на электричку, завтра-после завтра посмотрю Frenzy, может файл в новое место переименовывать? староеимя_дата_время_копирования? - тогда точно будут разные файлы |
Время: 07:54. |
Время: 07:54.
© OSzone.net 2001-