Latest post of the previous page:
Если дашь всё в собранном виде+объяснишь что проверять, могу запустить на XP x64 и 7 x64PowerShellFar — PowerShell host и автоматизация Far Manager
- NightRoman
- Posts: 6225
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 42 times
- Been thanked: 62 times
- Contact:
Re: PowerShellFar — выполнение команд PowerShell в единой сессии
Px
Большое спасибо. Вот только подготовить и выложить куда-нибудь (или послать?) все смогу только завтра.
Большое спасибо. Вот только подготовить и выложить куда-нибудь (или послать?) все смогу только завтра.
- NightRoman
- Posts: 6225
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 42 times
- Been thanked: 62 times
- Contact:
Re: PowerShellFar — выполнение команд PowerShell в единой сессии
Px
Может ты не в курсе, но одних плагинов FarNet + PowerShellFar не достаточно,
первый требует .NET 2.0, второй требует PowerShell v2 CTP3. Если у тебя этого
нет, не стоит ставить всю эту кухню только для того, чтобы протестировать. Ну
разве что ты все равно планируешь в перспективе использовать PowerShell.
На семерке-то все уже стоит, конечно, "прямо из коробки", но она-то как раз
пока менее практически интересна, я ее пока не использую. Интересует Vista 64
(в первую очередь, ибо у меня рабочая машина такова), ну или XP 64 на худой
конец.
Спасибо за предложение помочь, но перенапрягать тебя не хочется. Надеюсь,
кто-нибудь еще отликнется. Скажи, готовить ли эту тест-сборку для тебя с учетом
этой дополнительной инфы или лучше подождем.
Может ты не в курсе, но одних плагинов FarNet + PowerShellFar не достаточно,
первый требует .NET 2.0, второй требует PowerShell v2 CTP3. Если у тебя этого
нет, не стоит ставить всю эту кухню только для того, чтобы протестировать. Ну
разве что ты все равно планируешь в перспективе использовать PowerShell.
На семерке-то все уже стоит, конечно, "прямо из коробки", но она-то как раз
пока менее практически интересна, я ее пока не использую. Интересует Vista 64
(в первую очередь, ибо у меня рабочая машина такова), ну или XP 64 на худой
конец.
Спасибо за предложение помочь, но перенапрягать тебя не хочется. Надеюсь,
кто-нибудь еще отликнется. Скажи, готовить ли эту тест-сборку для тебя с учетом
этой дополнительной инфы или лучше подождем.
Re: PowerShellFar — выполнение команд PowerShell в единой сессии
.NET 3.5 SP1 у меня стоит, PowerShell в XP x64 не установлен, да, но не думаю, что он будет мне мешать 
Висты установленной под руками нет, только тестовая семёрка
Ждать/не ждать - как хочешь
Висты установленной под руками нет, только тестовая семёрка
Ждать/не ждать - как хочешь
- NightRoman
- Posts: 6225
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 42 times
- Been thanked: 62 times
- Contact:
Re: PowerShellFar — выполнение команд PowerShell в единой сессии
Px
Прикрепил.
Шаги
- распаковать на х64 машине и запустить Фар из распакованной папки
- нажать F11 - меню плагинов - должно быть 2 пункта .NET и .NET PowerShellFar
- выбрать пункт .NET PowerShellFar
Результат
- если все ок, то появится меню PowerShellFar, что-то около дюжины пунктов (этого мне достаточно знать)
- если не ок, то появится диалог с сообщением "PowerShell engine is not initialized..." и там будут кнопки [View Info] [Copy Info], можно нажать на [Copy Info] и прислать текст сообщения о проблеме, что там в буфер скопируется
- если какое-то иное поведение будет - это тоже интересно, конечно.
EDIT так, аттачмент не прошел, великоват, что ли? Щас подумаю.
Прикрепил.
Шаги
- распаковать на х64 машине и запустить Фар из распакованной папки
- нажать F11 - меню плагинов - должно быть 2 пункта .NET и .NET PowerShellFar
- выбрать пункт .NET PowerShellFar
Результат
- если все ок, то появится меню PowerShellFar, что-то около дюжины пунктов (этого мне достаточно знать)
- если не ок, то появится диалог с сообщением "PowerShell engine is not initialized..." и там будут кнопки [View Info] [Copy Info], можно нажать на [Copy Info] и прислать текст сообщения о проблеме, что там в буфер скопируется
- если какое-то иное поведение будет - это тоже интересно, конечно.
EDIT так, аттачмент не прошел, великоват, что ли? Щас подумаю.
- NightRoman
- Posts: 6225
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 42 times
- Been thanked: 62 times
- Contact:
Re: PowerShellFar — выполнение команд PowerShell в единой сессии
Px
Послал на адрес, что нашел на твоем сайте. Спасибо заранее.
Послал на адрес, что нашел на твоем сайте. Спасибо заранее.
Re: PowerShellFar — выполнение команд PowerShell в единой сессии
XP x64
7-ка будет позже, она у меня не основная 
Code: Select all
╔══════════════ N:\TFar ═══════════════╗╔══════════════ N:\TFar ═══════════19:57
║n Name │ Name ║║n Name │ Name ║
║.. │ ║║.. │ ║
║Lib │ ║║Lib │ ║
║Plugins │ │ ║
║Plugins.NET │ ╔══════ PowerShellFar ══════╗ │ ║
║Far.exe │ ║ 1. Invoke input code... ║ │ ║
║Far.exe.config │ ║ 2. Invoke selected code ║ │ ║
║FarCze.lng │ ║ 3. Background jobs... ║ │ ║
║FarEng.hlf │ ║ 4. Command history... ║ │ ║
║FarEng.lng │ ║ 5. Editor console ║ │ ║
║FarGer.lng │ ║ 6. Power panel... ║ │ ║
║FarRus.hlf │ ║ 7. TabExpansion ║ │ ║
║FarRus.lng │ ║ 8. Snap-ins... ║ │ ║
║File_id.diz │ ║ 0. Errors... ║ │ ║
║ │ ╟───────────────────────────╢ │ ║
║ │ ║ -. User menu... ║ │ ║
║ │ ║ =. User code ║ │ ║
║ │ ╚═══════════════════════════╝ │ ║
║ │ │ ║
╟──────────────────┴───────────────────╢╟──────────────────┴───────────────────╢
║.. Up 05.03.09 19:54║║.. Up 05.03.09 19:54║
╚═════ 1 849 686 bytes in 9 files ═════╝╚═════ 1 849 686 bytes in 9 files ═════╝
N:\TFar>
1Help 2UserMn 3View 4Edit 5Copy 6RenMov 7MkFold 8Delete 9ConfMn 10Quit
- NightRoman
- Posts: 6225
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 42 times
- Been thanked: 62 times
- Contact:
Re: PowerShellFar — выполнение команд PowerShell в единой сессии
Px
Спасибо, это уже хорошая новость. Про 7-ку тоже полезно будет знать.
Чертова Виста. Однако появляется слабая надежда, что раз в принципе оно работает на х64, то может и придумаю костыль какой.
Спасибо, это уже хорошая новость. Про 7-ку тоже полезно будет знать.
Чертова Виста. Однако появляется слабая надежда, что раз в принципе оно работает на х64, то может и придумаю костыль какой.
Re: PowerShellFar — выполнение команд PowerShell в единой сессии
Поведение аналогичное, даже при запуске без прав администратораNightRoman wrote:Про 7-ку тоже полезно будет знать.
Re: PowerShellFar — выполнение команд PowerShell в единой сессии
NightRoman wrote:Кто-нибудь пробовал запустить всю обычную х86 связку Far + FarNet + PowerShellFar на х64 машине? У меня повершелл не стартует, и я пытаюсь тиранить разработчиков из МС на эту тему (глядишь им еще и Фар приглянется, LOL). Но вдруг простая мысль пришла в голову - может, это только у меня проблемы? Откликнитесь, кто пробовал, или попробуйте, пожалуйста и напишите о любом результате - вдруг да и работает у кого? Ну я еще добавлю, что у меня Виста х64, но результат для любой х64 машины пока важен.
Проверил на Vista x64 SP1 с установленными:NightRoman wrote: Шаги
- нажать F11 - меню плагинов - должно быть 2 пункта .NET и .NET PowerShellFar
- выбрать пункт .NET PowerShellFar
.NET Framework (из дистрибутива Vista с накаченными апдейтами)
Microsoft Visual C++ 2008 SP1 Redistributable Package x86
Microsoft Visual C++ 2008 SP1 Redistributable Package x64
PowerShell v2 CTP3 x64
Far 2.0.816 x86
FarNet.4.0.4
PowerShellFar.2.0.4
Результат:
Все работает
Прилагаю дампы консоли, выполненные при помощи ConMan.
На дампе панелей видно какие плагины стоят, кроме стандартных.
- Attachments
-
- ConEmuReqTabs1156.7z
- Панели
- (1.25 KiB) Downloaded 214 times
-
- ConEmuReqTabs944.7z
- Едитор
- (1006 Bytes) Downloaded 297 times
- NightRoman
- Posts: 6225
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 42 times
- Been thanked: 62 times
- Contact:
Re: PowerShellFar - PowerShell host и автоматизация Far Manager
Px и Mors
Спасибо за помощь и за хорошие новости, значит, оно-таки работает в принципе, даже на Висте 64. Буду разбираться со своими проблемами. Сапожник без сапог..
Спасибо за помощь и за хорошие новости, значит, оно-таки работает в принципе, даже на Висте 64. Буду разбираться со своими проблемами. Сапожник без сапог..
- NightRoman
- Posts: 6225
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 42 times
- Been thanked: 62 times
- Contact:
Re: PowerShellFar - PowerShell host и автоматизация Far Manager
Супер-макросы и механизм для тестирования Far и плагинов с помощью PowerShell
FarNet 4.0.5 + PowerShellFar 2.0.5 предоставляют работоспособный механизм для тестирования функциональности Far Manager и его плагинов (не только .NET плагинов) с помощью особых PowerShell скриптов (step sequences или, иначе говоря, супер-макросов, то есть сочетаний макросов и скрипт-блоков). Скрупулезность и вариации супер-макросов или тестов зависят только от фантазии их автора. Некоторые ограничения, которые остались, представляются несущественными. Идея механизма – одни шаги запускают что-то, другие эмулируют какие-то действия пользователя, третьи проверяют результат действий и выбрасывают ошибку, если он неверен.
Строго говоря, этот механизм разработан давно и успешно используется для юнит-тестов самой связки FarNet + PowerShellFar. Однако, до последнего времени существовало серьезное ограничение – последовательность операций не могла прерываться модальными элементами, диалогом, например, или модальным редактором. Это обходилось засылкой макроса до запуска чего-то модального и проверкой результатов на выходе из модального режима. Но все равно это было криво, засылаемый макрос был монолитным и внутри самого модального режима тестировать по шагам было нельзя. Поэтому принципиально подход такого тестирования особо не пропагандировался. Теперь это ограничение снято и подход предлагается для продвинутых юнит-тестов интерфейсов и функциональности, на заметку фартиму, в том числе.
В силу специфики реализации (внутренне через меню плагинов) ограничение все еще существует для тех областей, где недоступно меню плагинов (например, Фар меню), но этих областей не так много и они достаточно тривиальны сами по себе, то есть тестировать-то там особо и нечего, в некотором смысле. Впрочем, как и раньше, ограничение легко обходится засылкой макроса перед запуском (для выбора нужного пункта в меню, например).
Чтобы понять, как все работает, лучше всего позапускать и изучить код тестового скрипта Test-Stepper-.ps1. В последней версии в него также добавлены шаги для модальных режимов, например, модальный редактор и два типа модальных диалогов – запускаемый клавиатурно и программно. По умолчанию скрипт запускается в пошаговом режиме, наглядно показывая перед каждым шагом скрипт блок или макрос, который будет выполнен следующим. По умолчанию включена и демка диалога с пользователем – в авто-тестах такого быть не должно, но это вполне возможно в не тестовых супер-макросах. В реально тестовых целях этот скрипт запускается с ключом –Auto – никакой пошаговости, никаких диалогов с пользователем – все тестируется молча и либо отрабатывает, если все ок, либо выбрасывает ошибку.
Организовать эту кухню несколько сложнее, чем просто макросы или просто скрипты, комбинированная и пошаговая специфика программирования заметно сложней линейной. Однако, комбинация макросов и скриптов позволяет гораздо больше, чем они могут порознь. Все детали и нюансы сразу излагать не буду, может, все и так понятно. Пробуйте, спрашивайте. Критикуйте тоже.
FarNet 4.0.5 + PowerShellFar 2.0.5 предоставляют работоспособный механизм для тестирования функциональности Far Manager и его плагинов (не только .NET плагинов) с помощью особых PowerShell скриптов (step sequences или, иначе говоря, супер-макросов, то есть сочетаний макросов и скрипт-блоков). Скрупулезность и вариации супер-макросов или тестов зависят только от фантазии их автора. Некоторые ограничения, которые остались, представляются несущественными. Идея механизма – одни шаги запускают что-то, другие эмулируют какие-то действия пользователя, третьи проверяют результат действий и выбрасывают ошибку, если он неверен.
Строго говоря, этот механизм разработан давно и успешно используется для юнит-тестов самой связки FarNet + PowerShellFar. Однако, до последнего времени существовало серьезное ограничение – последовательность операций не могла прерываться модальными элементами, диалогом, например, или модальным редактором. Это обходилось засылкой макроса до запуска чего-то модального и проверкой результатов на выходе из модального режима. Но все равно это было криво, засылаемый макрос был монолитным и внутри самого модального режима тестировать по шагам было нельзя. Поэтому принципиально подход такого тестирования особо не пропагандировался. Теперь это ограничение снято и подход предлагается для продвинутых юнит-тестов интерфейсов и функциональности, на заметку фартиму, в том числе.
В силу специфики реализации (внутренне через меню плагинов) ограничение все еще существует для тех областей, где недоступно меню плагинов (например, Фар меню), но этих областей не так много и они достаточно тривиальны сами по себе, то есть тестировать-то там особо и нечего, в некотором смысле. Впрочем, как и раньше, ограничение легко обходится засылкой макроса перед запуском (для выбора нужного пункта в меню, например).
Чтобы понять, как все работает, лучше всего позапускать и изучить код тестового скрипта Test-Stepper-.ps1. В последней версии в него также добавлены шаги для модальных режимов, например, модальный редактор и два типа модальных диалогов – запускаемый клавиатурно и программно. По умолчанию скрипт запускается в пошаговом режиме, наглядно показывая перед каждым шагом скрипт блок или макрос, который будет выполнен следующим. По умолчанию включена и демка диалога с пользователем – в авто-тестах такого быть не должно, но это вполне возможно в не тестовых супер-макросах. В реально тестовых целях этот скрипт запускается с ключом –Auto – никакой пошаговости, никаких диалогов с пользователем – все тестируется молча и либо отрабатывает, если все ок, либо выбрасывает ошибку.
Организовать эту кухню несколько сложнее, чем просто макросы или просто скрипты, комбинированная и пошаговая специфика программирования заметно сложней линейной. Однако, комбинация макросов и скриптов позволяет гораздо больше, чем они могут порознь. Все детали и нюансы сразу излагать не буду, может, все и так понятно. Пробуйте, спрашивайте. Критикуйте тоже.
- NightRoman
- Posts: 6225
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 42 times
- Been thanked: 62 times
- Contact:
Re: PowerShellFar - PowerShell host и автоматизация Far Manager
Keith Hill, знакомый виртуально по PowerShell сообществу, намедни выпустил бесплатную книгу (PDF), где собрал всякие интересные практические советы. Некоторое время он публиковал их по кусочкам в своем блоге и мне они очень нравились. Теперь они подредактированы и собраны вместе. Книга на английском.
http://keithhill.spaces.live.com/blog/c ... 6930.entry
http://keithhill.spaces.live.com/blog/c ... 6930.entry
- NightRoman
- Posts: 6225
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 42 times
- Been thanked: 62 times
- Contact:
Re: PowerShellFar - PowerShell host и автоматизация Far Manager
В последней версии (2.0.6), как можно видеть из анонса, можно поиграться с точками останова уже с помощью UI, что конечно удобнее, особенно для строковых БП при вызове меню прямо из редактора скрипта. Это первая версия, но джентельменский набор для отладки теперь реализован в полной мере (сам отладчик работает уже давно, но до UI точек останова не доходили руки, был только вспомогательный скрипт).
Кроме обычных точек останова, которые останавливают выполнение и открывают отладчик, в PowerShell есть и «необычные», к которым прикреплен кусок кода (вашего). Они поддерживаются и в PowerShellFar. Когда срабатывает такая точка останова, вместо остановки на самом деле просто вызывается этот код в текущем контексте исполнения. С помощью таких БП можно делать очень интересные вещи, причем, не только в целях отладки и при этом не меняя исходный код.
Кроме обычных точек останова, которые останавливают выполнение и открывают отладчик, в PowerShell есть и «необычные», к которым прикреплен кусок кода (вашего). Они поддерживаются и в PowerShellFar. Когда срабатывает такая точка останова, вместо остановки на самом деле просто вызывается этот код в текущем контексте исполнения. С помощью таких БП можно делать очень интересные вещи, причем, не только в целях отладки и при этом не меняя исходный код.
- NightRoman
- Posts: 6225
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 42 times
- Been thanked: 62 times
- Contact:
Re: PowerShellFar - PowerShell host и автоматизация Far Manager
Теперь есть и переведенный вариант:NightRoman wrote:Keith Hill, знакомый виртуально по PowerShell сообществу, намедни выпустил бесплатную книгу (PDF), где собрал всякие интересные практические советы. Некоторое время он публиковал их по кусочкам в своем блоге и мне они очень нравились. Теперь они подредактированы и собраны вместе. Книга на английском.
http://keithhill.spaces.live.com/blog/c ... 6930.entry
http://windowspowershell.ru/public/posh.pdf
- Александр Кряжев
- Posts: 882
- Joined: Sun 03 Dec, 2006 10:09
- Location: Москва
- Has thanked: 2 times
- Contact:
Re: PowerShellFar - PowerShell host и автоматизация Far Manager
Что-то у меня не запустилось.NightRoman wrote:О скриптах для обновления. Если у кого стоит PowerShell, то может заинтересует скрипт Update-FarManager.ps1 из поставки плагина PowerShellFar (для самого скрипта ни плагин PowerShellFar, ни FarNet не нужны, только PowerShell). У него есть, на мой взгляд, некоторые достоинства, простота использования в том числе. Если кому что там не нравится, но в принципе подходит, то могу и доработать, обсуждать прошу в тему плагина PowerShellFar.
Ах да, только для Фар 2.
Code: Select all
PS C:\> Update-FarManager.ps1
The term 'Update-FarManager.ps1' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:22
+ Update-FarManager.ps1 <<<<
+ CategoryInfo : ObjectNotFound: (Update-FarManager.ps1:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [3,General]: The command Update-FarManager.ps1 was not found, but does exist in the current location. Windows
PowerShell doesn't load commands from the current location by default. If you trust this command, instead type ".\Updat
e-FarManager.ps1". See "get-help about_Command_Precedence" for more details.
PS C:\>Фар - маргинальный продукт. (c) zg