|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] [Вопрос новичка] Ошибка в скрипте PowerShell |
|
PowerShell - [решено] [Вопрос новичка] Ошибка в скрипте PowerShell
|
Новый участник Сообщения: 12 |
Доброго времени суток, уважаемые форумчане! Прошу прощения, если этой темой нарушил какое-то правило форума, если подобный вопрос уже был или решение покажется вам слишком очевидным, первый раз использую PowerShell и поиск по гуглу/форуму ничего не дал. Буду признателен за любую помощь в исполнении простого скрипта.
Задача: Есть текстовый документ, содержащий в себе данные типа: Мне необходимо, чтобы PowerShell выдал мне информацию, что в текстовом документе: 1 - 3 2 - 2 4 - 1 Get-Content .\smm.txt | ForEach-Object -Begin { $wordCounts.@{} } -Process { $wordCounts.$_++ } -End { $wordCounts.GetEnumerator() | Sort-Object -Property Value } Не удается найти свойство "2" для данного объекта. Убедитесь, что оно существует и его можно задать. строка:1 знак:78 + ... Object -Begin { $wordCounts.@{} } -Process { $wordCounts.$_++ } -End ... + ~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound Не удается найти свойство "1" для данного объекта. Убедитесь, что оно существует и его можно задать. строка:1 знак:78 + ... Object -Begin { $wordCounts.@{} } -Process { $wordCounts.$_++ } -End ... + ~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound Не удается найти свойство "2" для данного объекта. Убедитесь, что оно существует и его можно задать. строка:1 знак:78 + ... Object -Begin { $wordCounts.@{} } -Process { $wordCounts.$_++ } -End ... + ~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound Не удается найти свойство "1" для данного объекта. Убедитесь, что оно существует и его можно задать. строка:1 знак:78 + ... Object -Begin { $wordCounts.@{} } -Process { $wordCounts.$_++ } -End ... + ~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound Не удается найти свойство "4" для данного объекта. Убедитесь, что оно существует и его можно задать. строка:1 знак:78 + ... Object -Begin { $wordCounts.@{} } -Process { $wordCounts.$_++ } -End ... + ~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound Не удается найти свойство "1" для данного объекта. Убедитесь, что оно существует и его можно задать. строка:1 знак:78 + ... Object -Begin { $wordCounts.@{} } -Process { $wordCounts.$_++ } -End ... + ~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound Невозможно вызвать метод для выражения со значением NULL. строка:1 знак:104 + ... ++ } -End { $wordCounts.GetEnumerator() | Sort-Object -Property Value ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull |
|
Отправлено: 12:32, 26-01-2020 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата coollogan:
Тогда: 1. Установите powershell core, лучше крайнюю версию (7.0). В powershell core командлет group-object был оптимизирован и работает гораздо быстрее, чем в версиях PS 5.1 и ниже. В общем, для получения адекватного времени обработки, необходимо использовать свежую версию powershell. 2. Если откидывать уникальные строки, то можно код оптимизировать (у меня отрабатывает на Вашем файле ps.txt, примерно 50-55 сек.): measure-command{ $in = 'ps.txt' $out = 'ps.csv' $arr = gc $in -r 0 -enc utf8|%{$_|sort} $arrnum = for ($i=1;$i -lt $arr.count;$i++){ if($arr[$i] -eq $arr[($i-1)]){$i;$i-1} } $arrsnum = $arrnum|sort -uni $arrresult = for($i=0;$i -lt $arrsnum.count;$i++){ $arr[($arrsnum[$i])] } $arrresult|group -noel |select name,count|sort count -d| export-csv $out -notype -enc utf8 } |
|
------- Отправлено: 07:38, 30-01-2020 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Файл обрабатывался минут 15 на моей машине в Powershell 7 RC2. Окончания работы PS 5.1 я ждал почти сутки, но так и не дождался. В целом, код такой: |
|
------- Отправлено: 10:22, 30-01-2020 | #22 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать coollogan, попробуйте в Excel. Поменять путь до файла и нажать Ctrl+Alt+F5
У меня выгружало около минуты. Выгрузит адреса с наибольшими повторениями (3000 адресов) |
Последний раз редактировалось v79italya, 30-03-2020 в 22:26. Отправлено: 19:54, 30-01-2020 | #23 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Друзья, YuS_2, v79italya, DJ Mogarych, Serguei Kouzmine, Busla, ВСЕМ ВАМ ОГРОМНОЕ СПАСИБО!
Не ожидал такой помощи, сейчас буду пробовать все варианты) Цитата v79italya:
|
|
Последний раз редактировалось coollogan, 31-01-2020 в 10:26. Отправлено: 10:16, 31-01-2020 | #24 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать Цитата coollogan:
Забыл написать что Power Query встроена в Excel2016 и в Excel 365. Для Excel 2010-2013 надстройку Power Query надо скачивать отдельно. И все это на Windows. Насчет Excel на Mac мне ничего не известно здесь внизу есть и про Mac
|
|
Последний раз редактировалось v79italya, 31-01-2020 в 16:04. Отправлено: 15:54, 31-01-2020 | #25 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать v79italya, получилось сделать на удаленном рабочем столе! Реально за пару секунд все сделалось, шок! Спасибо!
|
Отправлено: 16:43, 31-01-2020 | #26 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать Цитата coollogan:
Попробуйте на другом текстовом файле, о котором вы говорили(147мб). |
|
Отправлено: 17:00, 31-01-2020 | #27 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать v79italya, может, у него там SSD в чередовании?!
|
Отправлено: 17:05, 31-01-2020 | #28 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать Iska, не ну хорошо если все так.
А я грешу на Power Query, типа медленно обрабатывает объемы данных. А надо оказывается на свою несостоятельность грешить, что не могу себе позволить какое нибудь мощное железо для компа. Или на место проживания грешить? Типа, в гиблом месте живу ![]() Вообще то мне мой нэтбук с двумя гигами озу и с двумя ядрами процессора и неизвестно какой видяхой нравится. А че, куплен бу по цене аккамулятора и не планирую менять ближайшие лет пять. Вернее, в ближайшие лет пять не видятся никаких заработков, потому и не планируются покупки. Как то так ![]() |
Отправлено: 18:14, 31-01-2020 | #29 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата v79italya:
На файл 148 мегабайт ушло секунд 15 ![]() v79italya, а если возникнет необходимость получить больше 3 000 строк, я могу внести какие-то корректировки? Цитата Iska:
Дали попользоваться |
||
Отправлено: 01:48, 02-02-2020 | #30 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Redhat/Fedora - вопрос новичка - имя ПК | chek | Общий по Linux | 1 | 23-10-2017 19:53 | |
Разное - С чего начать настройку Windows 7 x64 ? - какие статьи прочитать (вопрос/ы новичка). | Макс Фолдер | Microsoft Windows 7 | 23 | 06-03-2016 05:33 | |
CMD/BAT - ошибка в скрипте | cyber_ua | Скриптовые языки администрирования Windows | 4 | 01-03-2012 16:46 | |
VBS/WSH/JS - ошибка в скрипте | D_e_n_n | Скриптовые языки администрирования Windows | 3 | 12-08-2011 14:03 | |
Вопрос новичка, о CSS+DIV верстке | Bullet-Avalon | Вебмастеру | 12 | 17-02-2009 00:57 |
|