Няшный PowerShell, Есть ли жизнь вне баша? Красноглазым на заметку! |
|
Здравствуйте, гость ( Вход | Регистрация )
Данный раздел форума предназначен для оставления своих комментариев и мнений по поводу размещенных на сайте soft.cnews.ru программ.
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 Регистрация: -- Пользователь №: |
|
|
|
6.6.2011, 10:53
Сообщение
#4
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Цитата ИМХО мозг спотыкается о другое - на кой чорт в никсах отделять расширение? Например для переименования файлов. Нудно из file.jpg сделать file_100x200.jpg |
|
|
6.6.2011, 11:06
Сообщение
#5
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
find ./ -size +100k -exec du {} \; Красиво? Да! Читаемо? Да! Удобно? До безумия. Пусик, задача была - ДОБАВИТЬ функционал к имеющемуся варианту, а не выводить все файлы с размером от 100К. Понимаешь разницу? ) Поnjму-что в случае с powershell твой скрипт будет выглядеть так: Цитата gci 'C:\Test' -recurse | where { $_.Length -gt 100kb } | Foreach { } Круто, да? =) то же самое на другой машине ssh host find ./ -size +100k -exec du {} \; хотелось бы посмотреть на вариант поиска файлов на соседней машине от красноглазых повершелистов. Включаешь WRM и фигачишь удаленное выполнение команд. Кроме того, ты не поверишь, но для Windows есть SSH Powershell сервер - выполнение скриптов "как в люниксе" через SSH =) basename - не обязательно, достаточно name=${filename%.*} Еще один способ к тысяче и одному люниксизвращению )))))) Нужно ли говорить, что испольовать ОБЪЕКТНЫЙ язык для ПОДОБНОЙ задачи - это забивать гвозди микроскопом? Но если под руками только микроскоп - Нужно сравнивать микроскопы, например, 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 Регистрация: -- Пользователь №: |
Несколько не связанных друг с другом средств, куча костылей и подпорок. Учитывая наличие в никсах пайпа, сокетов и каналов там в принципе не бывает того, что вы описали. 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 Регистрация: -- Пользователь №: |
|
|
|
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 Регистрация: -- Пользователь №: |
Powershell это специализированный полнофункциональный объекто-ориентированный язык для автоматизации Windows. В нем есть доступ ко всему - к файлам, планировщику, командам, процессам, реестру, базам данных, виртуальным машинам и тд и тп... Либо это мегадыра в безопасности Windows, либо у него есть доступ не ко всему.Цитата Причем делается все не зоопарком из bash/perl/python/awk/sed с их исторически сложившимися зубодробильными задрочками, а с помощью одного логичного и простого языка. ... в котором все эти зубодроьбильные задрочки свалены в одну мегазубодробильную мегакучу задрочек с дополнительными задрочками, связанными уже с самой кучей.Цитата Как ты уже догадался, цель была не втоптать красноглазых в их естественную среду, а принести свет просвещения в ряды заблудших тридцатипятилетних подростков. Которые искренне веруют (а точнее их науськали отцы линуксцеркви), что Windows это малоуправляемая ОС не поддающаяся автоматизации. Свет Люцифера-светоносца. Цитата Что на самом деле конечно не так. Автоматизация в 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 Регистрация: -- Пользователь №: |
Цитата Либо это мегадыра в безопасности Windows, либо у него есть доступ не ко всему. Либо Орлуша идиот и не знает про мандатный доступ.Цитата Цитата Свет Люцифера-светоносца. devil.gif Я об этом и говорю. Аргументация у люниксоидов под стать люниксу на десктопе. Разнообразная и глюкаявая )Цитата а принести свет просвещения в ряды заблудших тридцатипятилетних подростков Цитата Цитата А теперь -- ложка мёда. Никсы написаны на C и имеют функциональную структуру, доступные програмисту слои Windows написаны на C++/C# и имеют объектную структуру. Потому для никсов естественен функциональный шелл, для вендов -- объектный. Который сложнее функционального на столько же, насколько C++ сложнее, чем С. Который настолько же менее эффективен в плане производительности и менее читаем, насколько C++ менее эффективен и менее читаем, чем C. Это бла-бла к инструментам автоматизации как свинья к генералу. Тут уже предлагали питон как похожий на PS инструмент. Тоже объектно-ориентирован. Но не специализирован, в чем и вся фишка.Цитата Цитата ... в котором все эти зубодроьбильные задрочки свалены в одну мегазубодробильную мегакучу задрочек с дополнительными задрочками, связанными уже с самой кучей. Я так понимаю, это была антиреклама люникса? |
|
|
Текстовая версия | Сейчас: 22.9.2024, 11:19 |