Executa e edita um Perl / Python / não-Powershell - Script no Powershell_ISE (Windows Server)

0

Estou em um Windows Server (2012) com o Powershell_ISE e antes de instalar software adicional Eu queria editar e testar um script no Powershell_ISE (é uma solução nativa melhor do que usar o notepad + cmd.exe por causa da edição por abas, por exemplo)

Idéia: Atalho de teclado para uma entrada de menu (em "Add-ons" no menu) onde o perl.exe é chamado com o caminho de script atual como parâmetro.

Eu tentei as seguintes linhas:

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

(com saps = start-process) ou

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

(com & = execute comando externo) ou

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

(iniciar processo e aguardar)

Um cmd-Window está piscando em breve, mas no painel do console não há saída. (o Perlscript apenas imprime "teste" e está funcionando quando executado diretamente executando: & "c:\strawberry\perl\bin\perl.exe" $cur.FullPath no painel de console)

Se isso funcionasse, você poderia adicionar essa linha ao perfil $ do Powersehll_ISE para editar / executar scripts de todos os idiomas chamando o binário apropriado

    
por eli 17.06.2016 / 08:56

1 resposta

0

Um minuto depois, experimentei a seguinte linha (com & em combinação com -wait e funciona:

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

(você também pode usar as teclas "F" - por exemplo: em vez de "ctrl + alt + y", use "F4")

Para salvar o arquivo antes de executar, adicione $psise.CurrentFile.Save() à linha:

$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') 
    
por 17.06.2016 / 09:03