Запуск и редактирование скрипта Perl/Python/не-Powershell в Powershell_ISE (Windows Server)

Запуск и редактирование скрипта Perl/Python/не-Powershell в Powershell_ISE (Windows Server)

Я работаю на Windows Server (2012) с Powershell_ISE и перед установкой дополнительного программного обеспечения я хотел отредактировать и протестировать скрипт в Powershell_ISE (он лучшероднойрешение, чем использование блокнота + cmd.exe, например, из-за редактирования с вкладками)

Идея: сочетание клавиш для входа в меню (в разделе «Дополнения»), гдеperl.exeвызывается с текущим путем к скрипту в качестве параметра.

Я попробовал следующие строки:

$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Perl",{$cur=$psISE.CurrentFile; saps "c:\strawberry\perl\bin\perl.exe" $cur.FullPath },'Ctrl+Alt+q')

(с saps=start-process) или

$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Perl",{$cur=$psISE.CurrentFile; & "c:\strawberry\perl\bin\perl.exe" $cur.FullPath },'Ctrl+Alt+e')

(с & = выполнить внешнюю команду) или

$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Perl",{$cur=$psISE.CurrentFile; saps "c:\strawberry\perl\bin\perl.exe" $cur.FullPath -wait },'Ctrl+Alt+w')

(запустить процесс и подождать)

Окно cmd мигает на короткое время, но на панели консоли нет вывода. (Perlscript просто печатает «test» и работает при непосредственном запуске: & "c:\strawberry\perl\bin\perl.exe" $cur.FullPathна панели консоли)

Если это сработает, вы можете добавить эту строку в $profile Powersehll_ISE для редактирования/выполнения скриптов всех языков путем вызова соответствующего двоичного файла

решение1

Минуту спустя я попробовал следующую строку ( &в сочетании с , -waitи это сработало):

$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Perl-Menu_Entry",{$cur=$psISE.CurrentFile; & "c:\strawberry\perl\bin\perl.exe" $cur.FullPath -wait },'Ctrl+Alt+y') 

(Вы также можете использовать клавиши «F» — например, вместо «ctrl+alt+y» просто используйте «F4»)

Чтобы сохранить файл перед выполнением, добавьте $psise.CurrentFile.Save()в строку:

$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Perl-Menu_Entry",{$psise.CurrentFile.Save(); $cur=$psISE.CurrentFile; & "c:\strawberry\perl\bin\perl.exe" $cur.FullPath -wait },'Ctrl+Alt+y') 

Связанный контент