Ausführen und Bearbeiten eines Perl / Python / Nicht-Powershell-Skripts in Powershell_ISE (Windows Server)

773
eli

Ich bin auf einem Windows Server (2012) mit Powershell_ISE und vor der Installation zusätzlicher Software wollte ich ein Skript in Powershell_ISE bearbeiten und testen (es ist eine bessere native Lösung als Notepad + cmd.exe, zum Beispiel wegen der Bearbeitung mit Registern).

Idee: Tastenkombination zu einem Menüeintrag (unter "Add-Ons" im Menü), in dem perl.exe mit dem aktuellen Skriptpfad als Parameter aufgerufen wird.

Ich habe folgende Zeilen ausprobiert:

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

(bei saps = Startvorgang) oder

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

(mit & = externen Befehl ausführen) oder

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

(Startvorgang und warten)

Ein Cmd-Fenster blinkt kurz, aber im Konsolenbereich wird keine Ausgabe ausgegeben. (Das Perlscript druckt nur "test" und funktioniert, wenn es direkt ausgeführt wird: & "c:\strawberry\perl\bin\perl.exe" $cur.FullPathim Konsolenfenster.)

Wenn dies funktionieren würde, könnten Sie diese Zeile zum $ -Profil des Powersehll_ISE hinzufügen, um Skripts aller Sprachen zu bearbeiten bzw. auszuführen, indem Sie die entsprechende Binärdatei aufrufen

0

1 Antwort auf die Frage

0
eli

Eine Minute später habe ich die folgende Zeile ausprobiert (mit &in Kombination mit -waitund es funktioniert:

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

(Sie können auch die "F" -Tasten verwenden - zB: Statt "Strg + Alt + Y" verwenden Sie einfach "F4".)

Um die Datei vor dem Ausführen zu speichern, fügen Sie $psise.CurrentFile.Save()der Zeile Folgendes hinzu :

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