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

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

Ответить
Настройки темы
PowerShell - Сортировка файлов по подстроке

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


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


Конфигурация

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


Доброго времени суток,
нужна помощь в написании скрипта.

Ситуация такая:
в каталог на сервере (к примеру, c:\obmen) выгружаются службой документы в формате: имя_файла.xml + папка с таким же именем и с вложениями.
В файле имя_файла.xml есть строка с адресом (например, <Address=Иванов>).

Нужно написать скрипт, который обходил бы все файлы .xml текущего каталога, искал в них строку с адресом (Иванов, Петров и др. - адрес уникален, количество и имена адресов известны) и, в зависимости от этой строки, перекладывал бы документ (.xml+одноименную папку с вложениями) в нужные подкаталоги (например, c:\obmen\Иванов, c:\obmen\Петров).

Заранее благодарю за оказанную помощь.

Отправлено: 21:41, 26-11-2012

 

Ветеран


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

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


Пример xml файла можете выложить?

Отправлено: 23:23, 26-11-2012 | #2



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

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


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


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

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


К сожалению, выложить xml не могу, в них персональные данные и информация по работе компании.
Но как я понимаю, структура xml нас не особо волнует, если мы будем обращаться к нему как к текстовому файлу и искать по подстроке. Здесь можно даже немного упростить задачу:
Найти и переместить все документы (xml + папка с вложениями), где в файле xml встречается слово "Иванов", затем сделать тоже действие с "Петровым" и тд, все остальные (хотя таких не будет) остаются в корневой папке для ручной обработки.

Отправлено: 10:44, 27-11-2012 | #3


Ветеран


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

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


Select-String -path *.xml -Pattern "Иванов|Петров" | copy -Destination {$_.matches[0].Value}
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:06, 27-11-2012 | #4


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


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

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


Спасибо, работает!
Копирует xml файлы; а как добавить копирование одноименных папок вместе с xml?

Отправлено: 11:45, 27-11-2012 | #5


Ветеран


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

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


copy Иванов,Петров C:\Folder -force -rec

Отправлено: 12:02, 27-11-2012 | #6


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


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

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


ммм, немного не то...

выгрузка идет в таком формате:
конфигурационный файл "2bf84f4b-1ac6-4541-aad9-73135f58e9df.xml"
+ папка одноименная "2bf84f4b-1ac6-4541-aad9-73135f58e9df" с вложениями

с копированием .xml Вы мне уже помогли, а вот как вместе с ним одновременно и папку копировать?

Отправлено: 12:59, 27-11-2012 | #7


Ветеран


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

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


Код: Выделить весь код
Select-String -path *.xml -Pattern "Иванов|Петров" | Foreach {
	$dest = $_.matches[0].Value
	$fpath = $_.Path -replace "\.xml"
	Copy-Item -Path $_.Path -Destionation $dest
	Copy-Item -Path $fpath -Destionation $dest -Recurse -Force
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:10, 27-11-2012 | #8


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


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

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


Спасибо большое, теперь все работает как нужно!

Отправлено: 15:04, 27-11-2012 | #9


Ветеран


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

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


Цитата kostich:
Но как я понимаю, структура xml нас не особо волнует, если мы будем обращаться к нему как к текстовому файлу и искать по подстроке. »
Это категорически неправильно!

Особенно в реализации Kazun'а - потому что в папку Иванова попадут обладатели отчеств Иванович, Ивановна и носители фамилий Ивановский и т.п.

Отправлено: 10:53, 29-11-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Сортировка файлов по расширению cyber_ua Скриптовые языки администрирования Windows 9 07-10-2012 23:16
Разное - сортировка файлов в библиотеках kekeke-kun Microsoft Windows 7 3 16-07-2012 01:24
Интерфейс - [решено] Сортировка файлов в проводнике maximkoff Microsoft Windows 7 7 18-03-2012 00:33
VBS/WSH/JS - [решено] VBS/WSH. Сортировка файлов по дате. rancid Скриптовые языки администрирования Windows 3 23-07-2009 06:38
CMD/BAT - Сортировка файлов kt626 Скриптовые языки администрирования Windows 2 28-03-2009 10:47




 
Переход