Добро пожаловать на форумы Боевого Народа (бывший форум Live.CNews.ru)!

ВАЖНЫЕ ТЕМЫ: FAQ по переезду и восстановлению учеток | Ошибки и глюки форума.
О проблемах с учетными записями писать СЮДА.
Няшный PowerShell - Форумы Боевого Народа
IPB

Здравствуйте, гость ( Вход | Регистрация )

> Правила раздела

Данный раздел форума предназначен для оставления своих комментариев и мнений по поводу размещенных на сайте soft.cnews.ru программ.
1. Обращаем ваше внимание, что односложные комментарии из не несущих смысловой нагрузки выражений, например: «хорошо», «круто», «отстой» и т.д. не несут практической пользы для посетителей сайта и форума, и будут удалены модератором. Для этого существует система оценки программ на сайте. При оставлении комментариев старайтесь более полно выражать свое положительное/отрицательное мнение по поводу программы, указывать ее положительные и отрицательные качества, а при возникновении проблем или вопросов – максимально четко формулируйте запрос.
2. Удалению подлежат следующие комментарии:
- запросы кейгенов, кряков, серийных номеров и ключей для выложенных на сайте программ;
- спам и флуд: сообщения, содержащие рекламу чего-либо, мусор (одни лишь смайлы или наборы символов) и сообщения, не несущие смысловой нагрузки.
3.Помните: комментируя программу первым, вы тем самым создаете новую тему на форуме.

4 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
Няшный PowerShell, Есть ли жизнь вне баша? Красноглазым на заметку!
сообщение 6.6.2011, 8:45
Сообщение #1





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Один из главных вопросов любого красноглазого, который встал на путь исправления - чем заменить няшную команду find из мира люникса и баша?

Наш ответ - PowerShell!

Вот простой пример рекурсивного поиска по директории, с использованием различных фильтров:

Цитата
gci 'C:\test' -recurse `
-include *.png, *.jpg, *.gif `
| Foreach {
$file = $_;
$file.Name
$file.DirectoryName
$file.Extension
}


Красиво? Да! Читаемо? Да! Удобно? До безумия.

Нужно ли говорить, что испольовать ОБЪЕКТНЫЙ язык для скриптования - это безумно удобно? Посмотрите на объект $file, через параметры которого можно получить ЛЮБУЮ необходимую информацию.

Нужна папка? $file.DirectoryName! Нужно расширение? $file.Extension! Имя файла? $file.Name!!!

А теперь сравним это с красноглазым линуксподходом. Обычная задача об которую спотыкается мозк красноглазого - отделить имя файла от расширения. И вот варианты решения:

Допустим, что F=”thisfile.txt”, то:

Цитата
echo "extension: ${F#*.}"


Или

Цитата
echo "extension: ${file##*.}"


Или

Цитата
echo ${F/*./}


Или

Цитата
echo "thisfile.txt" | awk -F . ‘{if (NF>1) {print $NF}}’


Или

Цитата
echo "$F | sed ‘s/.*\.//’"


Но! если нам вдруг понадобилось узнать ИМЯ файла БЕЗ расширения, тогда непременно придется вызывать левую утилиту:

Цитата
basename thisfile.txt .txt


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

Сравним уровень затрат, которые нам нужно получить для достижения цели:

* Windows - прочитать пятиминутную вводную по PowerShell

* Linux - изучить команды find, basename, командную оболочку bash и особенности ее работы, языки программирования SED или AWK и особенности работы с регулярными выражениями на этих языках. И это только начало!

Вы оценили тонкий линуксюмор в синтаксисе башевских заклинаний? Люниксподход теперь кажется вам простым? Вы хотите держать в памяти огромный массив информации, только лишь для того, что бы добыть расширение файла? Я - нет.

--

1. Домашнее задание для вступивших на путь исправления красноглазых - вывести на экран размеры файлов, где файл более 100 килобайт.

2. Сделать тоже самое для Linux/Bash.
3. Оценить разницу в подходах
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 9:33
Сообщение #2





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



find ./ -size +100k -exec du {} \;
Красиво? Да! Читаемо? Да! Удобно? До безумия.

то же самое на другой машине
ssh host find ./ -size +100k -exec du {} \;
хотелось бы посмотреть на вариант поиска файлов на соседней машине от красноглазых повершелистов.

basename - не обязательно, достаточно
name=${filename%.*}

Нужно ли говорить, что испольовать ОБЪЕКТНЫЙ язык для ПОДОБНОЙ задачи - это забивать гвозди микроскопом? Но если под руками только микроскоп -
Нужно сравнивать микроскопы, например, python:
file, ext = os.path.splitext(path)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 9:43
Сообщение #3





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(nassaja @ Понедельник, 6 Июня 2011, 08:45:47) *
Обычная задача об которую спотыкается мозк красноглазого - отделить имя файла от расширения.

ИМХО мозг спотыкается о другое - на кой чорт в никсах отделять расширение?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 10:53
Сообщение #4





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата
ИМХО мозг спотыкается о другое - на кой чорт в никсах отделять расширение?


Например для переименования файлов. Нудно из file.jpg сделать file_100x200.jpg
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 11:06
Сообщение #5





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(R3PO @ Понедельник, 6 Июня 2011, 09:33:44) *
find ./ -size +100k -exec du {} \;
Красиво? Да! Читаемо? Да! Удобно? До безумия.


Пусик, задача была - ДОБАВИТЬ функционал к имеющемуся варианту, а не выводить все файлы с размером от 100К. Понимаешь разницу? ) Поnjму-что в случае с powershell твой скрипт будет выглядеть так:

Цитата
gci 'C:\Test' -recurse | where { $_.Length -gt 100kb } | Foreach { }


Круто, да? =)

Цитата(R3PO @ Понедельник, 6 Июня 2011, 09:33:44) *
то же самое на другой машине
ssh host find ./ -size +100k -exec du {} \;
хотелось бы посмотреть на вариант поиска файлов на соседней машине от красноглазых повершелистов.


Включаешь WRM и фигачишь удаленное выполнение команд. Кроме того, ты не поверишь, но для Windows есть SSH Powershell сервер - выполнение скриптов "как в люниксе" через SSH =)

Цитата(R3PO @ Понедельник, 6 Июня 2011, 09:33:44) *
basename - не обязательно, достаточно name=${filename%.*}


Еще один способ к тысяче и одному люниксизвращению ))))))

Цитата(R3PO @ Понедельник, 6 Июня 2011, 09:33:44) *
Нужно ли говорить, что испольовать ОБЪЕКТНЫЙ язык для ПОДОБНОЙ задачи - это забивать гвозди микроскопом? Но если под руками только микроскоп - Нужно сравнивать микроскопы, например, python: file, ext = os.path.splitext(path)


Нет, не нужно. А то ведь запалишься на глупости а-ля Орлуша )))))) Powershell это специализированный полнофункциональный объекто-ориентированный язык для автоматизации Windows. В нем есть доступ ко всему - к файлам, планировщику, командам, процессам, реестру, базам данных, виртуальным машинам и тд и тп...

Причем делается все не зоопарком из bash/perl/python/awk/sed с их исторически сложившимися зубодробильными задрочками, а с помощью одного логичного и простого языка. Как ты уже догадался, цель была не втоптать красноглазых в их естественную среду, а принести свет просвещения в ряды заблудших тридцатипятилетних подростков. Которые искренне веруют (а точнее их науськали отцы линуксцеркви), что Windows это малоуправляемая ОС не поддающаяся автоматизации.

Что на самом деле конечно не так. Автоматизация в Windows на высоте! В лучших традициях Майкрософт - четко, логично, просто, удобно. И приятно.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 11:22
Сообщение #6





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



nassaja подобное обращение к незнакомому человеку достаточно характеризует тебя, чтобы разговор не продолжать. По делу же ты как обычно написал херню.
Аналог bash в винде, это язык bat файлов, который убог чуть более, чем полностью.
"полнофункциональный объекто-ориентированный язык" - это, например, perl, в нем есть доступ ко всему - к файлам, планировщику, командам, процессам, реестру, базам данных, виртуальным машинам.
PowerShell, появившись на десятилетия позже повторил то, что в линях использовалось со времен царя гороха. Мне понятна радость вендоадминов, которые до сего момента в плане средств автоматизациии сидели на жестком отсосе, и даже понятно их желание "Принести свет просвещения в ряды заблудших". Проблема в том, что радость эту "заблудшие" с ними не разделят, потому что подобное счастье у остальных по дефолту и с рождения. Прорывы МС такие прорывные.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 11:44
Сообщение #7





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата
nassaja подобное обращение к незнакомому человеку достаточно характеризует тебя, чтобы разговор не продолжать. По делу же ты как обычно написал херню.


Спасибо, ваше мнение очень ценно для нас!

Цитата
Аналог bash в винде, это язык bat файлов, который убог чуть более, чем полностью.


При этом он позволяет выполнять всю "домашнюю" автоматизацию.

Цитата
"полнофункциональный объекто-ориентированный язык" - это, например, perl, в нем есть доступ ко всему - к файлам, планировщику, командам, процессам, реестру, базам данных, виртуальным машинам.


Perl это язык общего назначения. С таким же успехом можно вспомнить и с/с++. Я же обсуждаю специализированные инструменты, вроде bash. Ты же не станешь на bash писать многопоточные приложения клиент-сервер? Хотя их и можно соорудить, но через такую ж... Понимаешь о чем я?

Цитата
PowerShell, появившись на десятилетия позже повторил то, что в линях использовалось со времен царя гороха. Мне понятна радость вендоадминов, которые до сего момента в плане средств автоматизациии сидели на жестком отсосе,


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

Цитата
и даже понятно их желание "Принести свет просвещения в ряды заблудших". Проблема в том, что радость эту "заблудшие" с ними не разделят, потому что подобное счастье у остальных по дефолту и с рождения. Прорывы МС такие прорывные.


Да, именно нести свет просвещения. Что бы красноглазый в экстазе не бегал по форумам с откровением в виде скриптана, который картинки фильтрует и по почте отправляет. Потому-что линуксцерковь внушила ему, будто он (как пользователь пары команд в баше) могуч и уникален, а в других ОС такого счастья нет =)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 11:47
Сообщение #8





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Да, до Powershell с автоматизацией рутины в виндах все было ужасно, сейчас, с PS, стало примерно как в люниксе. Не прошло и 20 лет. Дело за малым - проапгрейдить весь зоопарк.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 11:52
Сообщение #9





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(nassaja @ Понедельник, 6 Июня 2011, 11:44:20) *
Несколько не связанных друг с другом средств, куча костылей и подпорок.


Учитывая наличие в никсах пайпа, сокетов и каналов там в принципе не бывает того, что вы описали.


R3PO, вы зря напрягаетесь, nassaja не дано понять то, что вы пытаетесь до него донести....
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 11:53
Сообщение #10





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата
Да, до Powershell с автоматизацией рутины в виндах все было ужасно, сейчас, с PS, стало примерно как в люниксе. Не прошло и 20 лет. Дело за малым - проапгрейдить весь зоопарк.ф


В люниксе для того, что бы из автоматизации в БД забраться, надо брать перл, изучать его, доставлять модули, изучать DBI/DBD.. Т.к. Bash о базах данных ничего не знает, по сути это продвинутое связывание команд оболочки. В Windows же это один язык, одни инструменты и много возможностей. На порядок удобнее.

И заметь, я не говорю, что в люниксе НЕЛЬЗЯ это сделать. Я говорю, что в Windows это ТЕПЕРЬ (ну последние года четыре) делается ПРОЩЕ и УДОБНЕЕ. А с этим спорить бесполезно. В то же время люниксадепты бегают по форумам и вещают, что в Windows НЕТ автоматизации =)

Цитата
R3PO, вы зря напрягаетесь, nassaja не дано понять то, что вы пытаетесь до него донести....


Вот-вот, некая вера в Высокую Мысль, которую никто из обычных не поймет. Только адепт люникса десятой ступени погружения =) Только мои слова понятны всем, почему-то.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 12:00
Сообщение #11





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Насчет удобства - это дело вкуса.

По мне, так набор инструментов удобнее.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 12:01
Сообщение #12





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата
По мне, так набор инструментов удобнее.


В твоем случае это должно быть несколько РАЗНЫХ ножей )))))
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 12:05
Сообщение #13





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Конечно, для разных целей разные ножи. У тех, кто постоянно работает с ножами обычно так и есть.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 12:07
Сообщение #14





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(R3PO @ Понедельник, 6 Июня 2011, 12:05:11) *
Конечно, для разных целей разные ножи. У тех, кто постоянно работает с ножами обычно так и есть.


А колбаса?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 12:12
Сообщение #15





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата
А колбаса?
Ты не поверишь!
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 12:20
Сообщение #16





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата
Ты не поверишь!


Конечно не поверю. Перейдем к ВАЗам? А то ведь других аргументов у люниксоидов нет =) Не можешь говорить про ИТ - надо срочно вставить картинку с ножом и начать словоблудить про лицензии и колбасу =)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 12:25
Сообщение #17





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Ты утверждал, что универсальный инструмент удобнее специализированного. Утверждение безосновательно. Я привел контрпримеры. На bash и на ножах. Ты полил про пусика, колбасу и автоваз и лицензии. Кто из нас словоблуд?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 12:27
Сообщение #18





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(nassaja @ Понедельник, 6 Июня 2011, 11:06:00) *
Powershell это специализированный полнофункциональный объекто-ориентированный язык для автоматизации Windows. В нем есть доступ ко всему - к файлам, планировщику, командам, процессам, реестру, базам данных, виртуальным машинам и тд и тп...
Либо это мегадыра в безопасности Windows, либо у него есть доступ не ко всему.
Цитата
Причем делается все не зоопарком из bash/perl/python/awk/sed с их исторически сложившимися зубодробильными задрочками, а с помощью одного логичного и простого языка.
... в котором все эти зубодроьбильные задрочки свалены в одну мегазубодробильную мегакучу задрочек с дополнительными задрочками, связанными уже с самой кучей.
Цитата
Как ты уже догадался, цель была не втоптать красноглазых в их естественную среду, а принести свет просвещения в ряды заблудших тридцатипятилетних подростков. Которые искренне веруют (а точнее их науськали отцы линуксцеркви), что Windows это малоуправляемая ОС не поддающаяся автоматизации.
Свет Люцифера-светоносца. devil.gif
Цитата
Что на самом деле конечно не так. Автоматизация в Windows на высоте! В лучших традициях Майкрософт - четко, логично, просто, удобно. И приятно.
В лучших традициях микрософта -- почесать правое ухо левой руукой через бедро.

А теперь -- ложка мёда. Никсы написаны на C и имеют функциональную структуру, доступные програмисту слои Windows написаны на C++/C# и имеют объектную структуру. Потому для никсов естественен функциональный шелл, для вендов -- объектный. Который сложнее функционального на столько же, насколько C++ сложнее, чем С. Который настолько же менее эффективен в плане производительности и менее читаем, насколько C++ менее эффективен и менее читаем, чем C.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 12:43
Сообщение #19





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата
Ты утверждал, что универсальный инструмент удобнее специализированного. Утверждение безосновательно. Я привел контрпримеры. На bash и на ножах. Ты полил про пусика, колбасу и автоваз и лицензии. Кто из нас словоблуд?


Контпример в виде картинки ножа - весьма грозен =)

Цитата
Либо это мегадыра в безопасности Windows, либо у него есть доступ не ко всему.


Либо Орлуша идиот и не знает про мандатный доступ.

Цитата
Свет Люцифера-светоносца. devil.gif


Я об этом и говорю. Аргументация у люниксоидов под стать люниксу на десктопе. Разнообразная и глюкаявая )

Цитата
А теперь -- ложка мёда. Никсы написаны на C и имеют функциональную структуру, доступные програмисту слои Windows написаны на C++/C# и имеют объектную структуру. Потому для никсов естественен функциональный шелл, для вендов -- объектный. Который сложнее функционального на столько же, насколько C++ сложнее, чем С. Который настолько же менее эффективен в плане производительности и менее читаем, насколько C++ менее эффективен и менее читаем, чем C.


Это бла-бла к инструментам автоматизации как свинья к генералу. Тут уже предлагали питон как похожий на PS инструмент. Тоже объектно-ориентирован. Но не специализирован, в чем и вся фишка.

Цитата
... в котором все эти зубодроьбильные задрочки свалены в одну мегазубодробильную мегакучу задрочек с дополнительными задрочками, связанными уже с самой кучей.


Я так понимаю, это была антиреклама люникса?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.6.2011, 13:08
Сообщение #20





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(nassaja @ Понедельник, 6 Июня 2011, 12:43:27) *
Цитата
Либо это мегадыра в безопасности Windows, либо у него есть доступ не ко всему.
Либо Орлуша идиот и не знает про мандатный доступ.
Либо нассайко думает, что старое вирьё в новых вендах работать прекратило, а такие свеженькие дыры, как элевация привилегий, выловлены ещё на QA. Увы, нассаюшко, увы... cry.gif
Цитата
Цитата
Свет Люцифера-светоносца. devil.gif
Я об этом и говорю. Аргументация у люниксоидов под стать люниксу на десктопе. Разнообразная и глюкаявая )
Напоминаю конекст для нассайки-нечиталки:
Цитата
а принести свет просвещения в ряды заблудших тридцатипятилетних подростков
devil.gif
Цитата
Цитата
А теперь -- ложка мёда. Никсы написаны на C и имеют функциональную структуру, доступные програмисту слои Windows написаны на C++/C# и имеют объектную структуру. Потому для никсов естественен функциональный шелл, для вендов -- объектный. Который сложнее функционального на столько же, насколько C++ сложнее, чем С. Который настолько же менее эффективен в плане производительности и менее читаем, насколько C++ менее эффективен и менее читаем, чем C.
Это бла-бла к инструментам автоматизации как свинья к генералу. Тут уже предлагали питон как похожий на PS инструмент. Тоже объектно-ориентирован. Но не специализирован, в чем и вся фишка.
и потому пользуется огромным уcпехом в МСе, о чём даже в технетмаге писали. :D
Цитата
Цитата
... в котором все эти зубодроьбильные задрочки свалены в одну мегазубодробильную мегакучу задрочек с дополнительными задрочками, связанными уже с самой кучей.
Я так понимаю, это была антиреклама люникса?
Нассайчик, ты когда дедушке домашнее задание по чтению ответишь? :D
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

4 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 23.5.2024, 22:54
Консультации адвоката по уголовным делам. Бесплатно. По всей России