![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Сравнение 2 файлов |
|
PowerShell - [решено] Сравнение 2 файлов
|
Новый участник Сообщения: 34 |
Возникла необходимость сравнение 2 текстовых файлов и запись в третий файл данных из первого и второго. Кто может помогите, как это можно реализовать? PowerShell изучаю совсем не давно и таких навыков еще нет =( А теперь более подробно:
Есть 2 файла, в виде: 1. Файл 00005555;000000;Петров Петр Петрович 2. Файл 0000;0000;0000;0000;0000;0000;0000;0000;Петров Петр Петрович;PetrovPP Необходимо следующее сравнить 2 файла построчно и при полном совпадении ФИО в 1 файле и ФИО во втором записать строку в третий файл совместив первое поле из первого файла и всю строку из второго в виде: 0000;0000;0000;0000;0000;0000;0000;0000;Петров Петр Петрович;PetrovPP;00005555 А при нахождении двух ФИО идентичных записать ошибку в отдельный файл с указанием ФИО. |
|
Отправлено: 11:28, 14-12-2016 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Johny_spb:
Цитата Johny_spb:
Цитата Johny_spb:
|
|||
Отправлено: 11:53, 14-12-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 34
|
Профиль | Отправить PM | Цитировать 1 файл
Выгрузка из AD Путь к утечке, Петров Петор Петрович,PetrovPP Путь к утечке, Петров1 Петор Петрович,Petrov1PP Путь к утечке, Петров2 Петор Петрович,Petrov2PP и т.д. (более 500 пользователей) 2 файл 0000000001;99996; Петров Петор Петрович;Контора;Адрес;Телефон 0000000002;99997; Петров1 Петор Петрович;Контора;Адрес;Телефон 0000000003;99998; Петров2 Петор Петрович;Контора;Адрес;Телефон и т.д. (более 500 пользователей) В результате необходимо взять ФИО первого пользователя из 1 файла (Петров Петор Петрович) найти его во втором файле и первый параметр из строчки записать и так по всем пользователям. т.е. в результате должно получаться: Путь к утечке, Петров Петор Петрович,PetrovPP,0000000001 Путь к утечке, Петров1 Петор Петрович,Petrov1PP,0000000002 Путь к утечке, Петров2 Петор Петрович,Petrov2PP,0000000003 и это записывается в 3 файл А если идет полное совпадении записывается в отделенный файл как ошибка |
Отправлено: 13:04, 14-12-2016 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Johny_spb, повторю:
Цитата Iska:
Цитата Johny_spb:
Цитата Johny_spb:
Цитата Johny_spb:
Короче говоря: выкладывайте архив с образцами исходных файлов, с результирующим файлом и с «отделенный файл как ошибка», которые должны получиться в итоге обработки. |
||||
Отправлено: 14:34, 14-12-2016 | #4 |
Новый участник Сообщения: 34
|
Профиль | Отправить PM | Цитировать Файлы во вложении. Спасибо!
|
|
Отправлено: 15:40, 14-12-2016 | #5 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $f1 = Import-Csv Фаил1.csv $f2 = Import-Csv Фаил2.txt -Encoding Default -Header H1,H2,H3,H4,H5 $f2 | Foreach {$err = @()} { $r = $f1 -match "$($_.H3) $($_.H4) $($_.H5)" if($r.Count -eq 1) { $r[0].employeeNumber = $_.H1 } if($r.Count -gt 1) { $err += $r[0].displayName} } { $err | Select -Uniq | Out-File error.txt $f1 | Export-Csv -NoType rezult.txt -Encoding Unicode } |
Отправлено: 20:31, 14-12-2016 | #6 |
Новый участник Сообщения: 34
|
Профиль | Отправить PM | Цитировать При попытке выполнить выдает ошибку =(
Import-Csv : Не удается найти параметр, соответствующий имени параметра "Encoding". C:\Temp\scr.ps1:2 знак:33 + $f2 = Import-Csv 2.txt -Encoding <<<< Default -Header H1,H2,H3,H4,H5 + CategoryInfo : InvalidArgument: ( ![]() + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.ImportCsvCommand |
Отправлено: 09:18, 15-12-2016 | #7 |
Новый участник Сообщения: 34
|
Профиль | Отправить PM | Цитировать Еще заметил что при создании файла результата появляются лишние "" (двойные кавычки)
"DN","displayName","sAMAccountName","employeeNumber" "CN=Petrov1PP,OU=40-Users,OU=St-Petersburg,DC=region,DC=cbr,DC=ru","Петров1 Петр Петрович","Petrov1PP", "CN=Petrov2PP,OU=40-Users,OU=St-Petersburg,DC=region,DC=cbr,DC=ru","Петров2 Петр Петрович","Petrov2PP", А необходимо: DN,displayName,sAMAccountName,employeeNumber "CN=Petrov1PP,OU=40-Users,OU=St-Petersburg,DC=region,DC=cbr,DC=ru",Петров1 Петр Петрович,Petrov1PP, "CN=Petrov2PP,OU=40-Users,OU=St-Petersburg,DC=region,DC=cbr,DC=ru",Петров2 Петр Петрович,Petrov2PP, |
Отправлено: 11:29, 15-12-2016 | #8 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $err = @() $d = New-Object Collections.Specialized.OrderedDictionary Get-Content Фаил1.csv | Foreach { $i = $_.split(",")[-2] if($d.Contains($i)) { $err += $i } else { $d.Add($i,$_) } } Get-Content Фаил2.txt | ConvertFrom-Csv -Header H1,H2,H3,H4,H5 | Group {"$($_.H3) $($_.H4) $($_.H5)"} | Foreach { $id = $_.Group[0].H1 $name = $_.Name if($d["$name"]) { $d["$name"] = $d["$name"] + ",$id" } } $err | Out-File error.txt $d.Values | Out-File rezult.txt |
Отправлено: 14:12, 16-12-2016 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Сравнение 2-х списков файлов | Andrey947 | Скриптовые языки администрирования Windows | 1 | 24-03-2016 10:19 | |
Сравнение текстовых файлов | Speedy | Программное обеспечение Windows | 9 | 30-03-2015 02:42 | |
Любой язык - Сравнение списка файлов и каталога с файлами с копированием файлов из каталога | jastreb83 | Скриптовые языки администрирования Windows | 0 | 10-04-2013 09:56 | |
Delphi - [решено] Сравнение файлов. | Snake750 | Программирование и базы данных | 6 | 15-03-2010 00:42 | |
Сравнение файлов | Guest | Программирование и базы данных | 6 | 24-04-2004 04:47 |
|