Запустите и отредактируйте Perl/Python/non-Powershell - скрипт в Powershell_ISE (Windows Server)
Я на Windows Server (2012) с Powershell_ISE и, прежде чем устанавливать дополнительное программное обеспечение, я хотел отредактировать и протестировать скрипт в Powershell_ISE (это более подходящее решение, чем использование notepad + 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
в панели консоли)
Если это сработает, вы можете добавить эту строку в профиль $ 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')