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

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

Ich bin auf einem Windows Server (2012) mit Powershell_ISE und bevor ich zusätzliche Software installiere, wollte ich ein Skript in der Powershell_ISE bearbeiten und testen (es ist eine bessereeinheimischLösung als die Verwendung von Notepad + cmd.exe, beispielsweise wegen der Bearbeitung mit Registerkarten)

Idee: Tastaturkürzel zu einem Menüeintrag (unter "Add-Ons" im Menü), wo dieperl.exewird mit dem aktuellen Skriptpfad als Parameter aufgerufen.

Ich habe die folgenden Zeilen ausprobiert:

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

(mit saps=start-process) oder

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

(mit & = externes Kommando 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')

(Prozess starten und warten)

Ein cmd-Fenster blinkt kurz auf, aber im Konsolenfenster erscheint keine Ausgabe. (Das Perlscript gibt nur „test“ aus und funktioniert, wenn es direkt durch Ausführen von: & "c:\strawberry\perl\bin\perl.exe" $cur.FullPathim Konsolenfenster ausgeführt wird.)

Wenn dies funktionieren würde, könnten Sie diese Zeile zum $profile von Powersehll_ISE hinzufügen, um Skripte aller Sprachen zu bearbeiten/auszuführen, indem Sie die entsprechende Binärdatei aufrufen

Antwort1

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 – z. B. statt „Strg+Alt+Y“ einfach „F4“ verwenden)

Um die Datei vor der Ausführung zu speichern, fügen Sie $psise.CurrentFile.Save()der Zeile 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') 

verwandte Informationen