Ejecute y edite un script Perl/Python/no Powershell en Powershell_ISE (Windows Server)

Ejecute y edite un script Perl/Python/no Powershell en Powershell_ISE (Windows Server)

Estoy en un servidor Windows (2012) con Powershell_ISE y antes de instalar software adicional quería editar y probar un script en Powershell_ISE (es mejornativosolución que usar notepad + cmd.exe debido a la edición con pestañas, por ejemplo)

Idea: método abreviado de teclado para una entrada de menú (en "Complementos" en el menú) dondeperl.exese llama con la ruta del script actual como parámetro.

Probé las siguientes líneas:

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

(con saps=start-process) o

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

(con & = ejecutar comando externo) o

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

(iniciar proceso y esperar)

Una ventana cmd parpadea brevemente pero en el panel de la consola no hay salida. (Perlscript simplemente imprime "prueba" y funciona cuando se ejecuta directamente ejecutando: & "c:\strawberry\perl\bin\perl.exe" $cur.FullPathen el panel de la consola)

Si esto funciona, puede agregar esta línea al perfil $ de Powersehll_ISE para editar/ejecutar scripts de todos los idiomas llamando al binario apropiado.

Respuesta1

Un minuto después probé la siguiente línea (con &en combinación con -waity funciona:

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

(También puedes usar las teclas "F", por ejemplo: en lugar de 'ctrl+alt+y' simplemente usa 'F4')

Para guardar el archivo antes de ejecutar agregue $psise.CurrentFile.Save()a la línea:

$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') 

información relacionada