如何在没有打开文件的情况下启动 Powershell ISE?

如何在没有打开文件的情况下启动 Powershell ISE?

当我启动时powershell_ise.exe,它默认打开文件“Untitled.ps1”。是否有一种机制可以让 ISE 启动时仅显示提示?

也就是说,当我启动 Powershell ISE 时,我得到以下内容:

带有空文档的 Powershell

而我想要的是以下内容:

没有文档的 Powershell

答案1

这是个老问题了,但我只是顺便提一下@Windos想出一个适合我的解决方案。由于我使用 ISE-Steroids,因此有一个功能可以保留打开的文件。我不想在启动时关闭所有打开的文件,只想关闭无标题的文件。

foreach($file in $psISE.CurrentPowerShellTab.Files) {
  if ($file.DisplayName -like "Untitled*.ps1"){
    $deleteMe = $file
  }
}
$psISE.CurrentPowerShellTab.Files.Remove($deleteMe)

尝试在 for 循环内删除文件将导致枚举错误。如果在启动时以某种方式打开了多个无标题脚本,$deleteme则可能是使用数组列表添加多个文件并将其自身添加到foreach其中以删除所有文件。

答案2

这是一个老问题,但我来这里寻找答案,所以我想我会给出我的实验结果。

有一个$psISE对象可以控制 ISE 设置、打开的文件等。您可以用它做很多事情。

有一个看起来很有希望的函数:

$psISE.CurrentPowerShellTab.Files.Clear()

不幸的是,这只会关闭所有打开的文件(如果它们已保存),然后打开一个新的未命名文件。

我最终得到了这个:

$null = while ($psISE.CurrentPowerShellTab.Files -ne $null) {
    $file = $psISE.CurrentPowerShellTab.Files[0]
    $psISE.CurrentPowerShellTab.Files.Remove($file)
}

基本上,它会不断检查打开的文件,并关闭它们,直到没有打开的文件为止。如果您以交互方式运行此程序,并且打开了未保存的文档,那么您很快就会被错误淹没,因为它无法关闭,然后循环再次尝试关闭它。

然后,您可以将其放入 ISE 配置文件 (C:\username\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1)。这是我目前的配置文件:

$null = while ($psISE.CurrentPowerShellTab.Files -ne $null) {
    $file = $psISE.CurrentPowerShellTab.Files[0]
    $psISE.CurrentPowerShellTab.Files.Remove($file)
}

psEdit $PSScriptRoot\snips.ps1

由于此操作在启动 ISE 时运行,因此它会关闭默认的未命名文件并打开一个随机文件,其中包含我喜欢参考的小片段。您可以省略最后一行或将其更改为您想要打开的任何文件。

nb 这$null =是为了抑制输出,它比管道传输更快Out-Null(我认为当你等待编辑器加载时这很重要。)

答案3

只需View在菜单中调整您的设置。

  • 取消选中“显示脚本窗格”
  • 取消选中“显示命令附加组件”
  • 取消选中“显示工具栏”
  • 根据需要取消选中其他选项

在此处输入图片描述

相关内容