Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Поиск файлов из списка

Ответить
Настройки темы
PowerShell - [решено] Поиск файлов из списка

Новый участник


Сообщения: 11
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: Frenzy
Дата: 01-12-2010
Только недавно начал изучать 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

Подскажите каким образом можно по конвееру передать строки из файла (если знаете уже готовые решения по такому вопросу - будит вообще замечательно)

Отправлено: 15:19, 01-12-2010

 

Новый участник


Сообщения: 11
Благодарности: 1

Профиль | Отправить PM | Цитировать


Разобрался надо было всего лишь поставить после 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я строка - копируем эти файлы в нужную папку

*Есть минус - если находит более одного экземпляра файла - второй не будет копировать (и выдаст ошибку, что файл уже существует)

Отправлено: 17:51, 01-12-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


Добрый день,

Frenzy, тоже недавно изучаю Powershell
Код: Выделить весь код
$read = Get-Content .\test.csv
$conv = Out-String -InputObject $read -Stream
ForEach ($Str in $conv){
IF ( Get-ChildItem ".\$str" | Where-Object { $_.exists -eq "true"})
{Copy-Item -Path ".\$Str" -destination "C:\Documents...\PS\Destination"}
else {"Файла не существует"}}
Тоже не идеал...если файла не существует, то прерывается цикл...
Нужно бежать на электричку, завтра-после завтра посмотрю

Frenzy, может файл в новое место переименовывать?
староеимя_дата_время_копирования? - тогда точно будут разные файлы

Отправлено: 18:21, 01-12-2010 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Поиск файлов из списка

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] сравнение списка файлов! Kobzar Скриптовые языки администрирования Windows 7 06-07-2012 19:30
C/C++ - Создание списка файлов Albreht Программирование и базы данных 2 20-07-2009 01:17
Интерфейс - [решено] Оптимизация открытия списка файлов в ХР chickaboo Microsoft Windows 2000/XP 4 30-06-2008 18:11
Создание списка и поиск по нему haba-haba Вебмастеру 8 10-10-2007 14:10
Обратный порядок списка файлов Guest Microsoft Windows 95/98/Me (архив) 31 19-02-2004 00:07




 
Переход