我在装有 Powershell_ISE 的 Windows Server (2012) 上,在安装其他软件之前,我想在 Powershell_ISE 中编辑和测试一个脚本(这是一个更好的本国的解决方案比使用 notepad + cmd.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 仅打印“测试”,直接& "c:\strawberry\perl\bin\perl.exe" $cur.FullPath
在控制台窗格中运行即可运行:)
如果这可行,您可以将此行添加到 Powersehll_ISE 的 $profile 中,通过调用适当的二进制文件来编辑/执行所有语言的脚本
答案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”键 - 例如:使用“F4”代替“ctrl+alt+y”)
要在执行之前保存文件,请添加$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')