Хочу иметь полную документацию на скриптовый язык PowerShell. У MS на странице Windows PowerShell Reference лежит невнятный набор тематических ссылок. В разделе "Docs/PowerShell/Scripting/Reference" лежит туча независимых страниц, на каждой из которых описывается что-нибудь одно. Гугл по запросу "powershell reference" выдает множество различных "PowerShell Commands", "Quick Guide" и т.п.
По этому чуду вообще есть классический reference, как на тот же bash?
Это, судя по всему, исходники для страниц MS — в таком же "кусочном" формате, и с гипертекстом только по заголовкам разделов (эти убогие сумели выделить названия команд синим, но не осилили сделать с них гиперссылки). В каком-нибудь PDF документацию выпускали, или только на сайте и ковыряться?
Re[3]: Где найти полную документацию на язык PowerShell?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, kov_serg, Вы писали:
_>>Такой пойдёт? https://github.com/MicrosoftDocs/PowerShell-Docs
ЕМ>Это, судя по всему, исходники для страниц MS — в таком же "кусочном" формате, и с гипертекстом только по заголовкам разделов (эти убогие сумели выделить названия команд синим, но не осилили сделать с них гиперссылки). В каком-нибудь PDF документацию выпускали, или только на сайте и ковыряться?
Здравствуйте, Danchik, Вы писали:
D>Я выучил базовыее команды, потом поиском по гуглу искал интерполяцию строк, try cacth, как трансформировать обьекты, как прокидывать параметры.
Вот я и спрашиваю, можно ли писать скрипты для PS, не разыскивая каждый раз нужный кусок документации. Насколько я знаю, для любого другого ЯП (по крайней мере, вышедшего за пределы экспериментального) существует официальная и полная спецификация, в виде хоть единого документа, хоть нескольких. А для PS такое вообще существует?
Re: Где найти полную документацию на язык PowerShell?
Здравствуйте, Евгений Музыченко, Вы писали: ЕМ>По этому чуду вообще есть классический reference, как на тот же bash?
Сам по себе "язык" в нём достаточно простой, хоть и наркоманский. Его писали какие-то альтернативные люди. Есть подозрение, что он разработан на спор — кто-то из Редмонда взял кого-то в Редмонде на слабо:
- невозможно придумать промышленный язык с более WTF поведением, чем JavaScript!
— hold my beer!
Ихнее автораскрытие одноэлементных списков может свести с ума любого.
Те, кто реализовывал идеи этого hold-my-beer-а, тоже прониклись шуткой. Своей основной задачей парни взяли "сделать его немыслимо тормозным". Ну, вот невозможно же поверить, что современный 2.6 гигагерцовый core i7 может потратить минуту на вычисление суммы чисел в csv файле. И тем не менее! Никакому JS и не снилось такое адское торможение.
Понятно, что просто сделать скриптовый язык с убогой интерпретируемой математикой для такого недостаточно — надо было придумать ущербную объектную модель, чтобы каждая строчка из csv превращалась в PSObject максимально тормозным и болезненным способом.
Я практически уверен, что одной ногой в этом стоял кто-то из аристократов команды Visual Basic. Это те ребята, которым не терпится поделить разработчиков на касты. Например, пусть тупые морлоки складывают активиксы на формы; они не могут выйти из-под власти элоев потому, что писать активикс надо на совсем другом языке. С этим всю карьеру боролся робингуд Хейльсберг — в его Delphi с самого начала использовался один и тот же язык и для написания контролов, и для их склеивания.
Но нет, дело VB живёт и побеждает — в первых двух версиях павершелла возможности писать коммандлеты на нём самом нет; и после добавления этой возможности обратно, она остаётся стыдным и грязным секретом — вы вряд ли найдёте нормальное руководство; только обрывки блогов типа "я сумел сделать вот такую штуку, ухты!" без малейших пояснений границ применимости.
Вся идея павершелла сводится к "никакой повторной используемости!!!". Злой гений, который стоит за его разработкой, был бы рад вообще запретить сохранять скрипты на файлухе, но видать ему не разрешили.
Куда ни ткни — всё сделано так, чтобы пользоваться было нельзя.
Вот, к примеру, Write-Progress.
Вы думаете, что в языке, который весь построен вокруг конвееров, коммандлет для показа прогресса операции, будет приспособлен для того, чтобы показывать прогресс размотки конвеера?
Хрен там: это просто убогий println, который вообще ничего не умеет. На кого он рассчитан? Люди, которые могут построить граф операций и рассчитать оценку времени работы на основе истории частичного исполнения, всяко могут и сами вывести прогресс бар. А те, кто пишет двухстрочные скрипты, вряд ли смогут (да и не обязаны) поделить x на y без ошибок.
Вот как должен был выглядеть write-progress здорового человека:
(Get-Content $fileName -Raw | ConvertFrom-Json | Tick | where {$_.user_specific}) | measure -Property total_units -Sum | ft
То есть втыкаем в любое место пайплайна | Tick | вместо | и оно начинает показывать прогресс исполнения. Я потратил массу времени на то, чтобы это написать, и до сих пор не уверен, что написал правильно. В предыдущем варианте там ещё был параметр, который задаёт "первые x секунд прогресс не показывать", чтобы не тормозить короткие операции. Но он, как потом выяснилось, работал не так, как я ожидал — пришлось выкинуть.
В общем, бегите, бегите из него. Powershell — это путь боли.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Где найти полную документацию на язык PowerShell?
Спасибо! Как-то я не догадался ввести в поиске "specification", все налегал на "reference" и "documentation".
vsb>Позиция разработчиков из MS: https://github.com/MicrosoftDocs/PowerShell-Docs/issues/4020
>> it was a significant amount of work and that the value provided to the community was comparably very low
Да хоть бы сделали, за столько-то лет, нормальную генерацию как HTML (с гиперссылками на терминах, идентификаторах и подобном) у себя на сайте, так и генерацию удобного для просмотра PDF из всего этого. А то где-то генерация PDF хоть и есть, но результат практически бесполезен, а где-то ее и вовсе нет.
vsb>Поколение зумеров хочет 5-минутные статейки
Типа, серьезные люди на таком не пишут? Я бы вот тоже не писал, будь у них более приличный скриптовый язык.
Re[2]: Где найти полную документацию на язык PowerShell?
Здравствуйте, Sinclair, Вы писали:
S>Его писали какие-то альтернативные люди.
Безусловно. До сих пор помню шок, испытанный при первом взгляде на PS-скрипт. В первый момент показалось, что текст хитрым образом обфусцирован или просто испорчен.
S>В общем, бегите, бегите из него.
Да я и не собираюсь писать на нем ничего серьезного. Большинство виндовых скриптов у меня написаны или непосредственно на родном cmd/bat, или на JS под интерпретатор JSDB. Хочу кое-что переделать на PS, но очень выборочно.
Re[3]: Где найти полную документацию на язык PowerShell?
Здравствуйте, Евгений Музыченко, Вы писали:
vsb>>Поколение зумеров хочет 5-минутные статейки
ЕМ>Типа, серьезные люди на таком не пишут? Я бы вот тоже не писал, будь у них более приличный скриптовый язык.
Не, я к тому, что подход к документации другой. А так-то альтернатив особо нет, bat уже явно не лучше.
Re[4]: Где найти полную документацию на язык PowerShell?
Здравствуйте, vsb, Вы писали:
vsb>я к тому, что подход к документации другой.
Ну, так-то, для любого языка обязана существовать более-менее адекватная синтаксическая/семантическая спецификация, из которой можно понять, какие конструкции допустимы, какие — нет, и какой смысл несет та или иная конструкция. А уже в довесок к ней может существовать любое количество обучающих материалов любого уровня в рамках "другого подхода".
Re[5]: Где найти полную документацию на язык PowerShell?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Насколько я знаю, для любого другого ЯП (по крайней мере, вышедшего за пределы экспериментального) существует официальная и полная спецификация, в виде хоть единого документа, хоть нескольких.
Эх, сразу видно, что ты на Руби не пытался писать.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[6]: Где найти полную документацию на язык PowerShell?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Безусловно. До сих пор помню шок, испытанный при первом взгляде на PS-скрипт. В первый момент показалось, что текст хитрым образом обфусцирован или просто испорчен.
+1
Re[2]: Где найти полную документацию на язык PowerShell?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>И при этом он был засланным казачком от юниксоидов, ибо притащить в PowerShell столько от bash'а никто другой бы не смог.
А что там от bash?
Re[4]: Где найти полную документацию на язык PowerShell?