Powershell IDE:如何重新启动交互式环境以清除所有变量而不离开Powershell伊势?

7qhs6swi  于 2022-12-29  发布在  Shell
关注(0)|答案(3)|浏览(97)

假设我使用Powershell伊势有一段时间了,我的环境空间开始变脏,我需要重新启动交互式环境......我不想关闭我的编辑器重新打开,如何重新启动Powershell ISE交互式环境来清除所有变量,而不需要关闭并重新打开Powershell ISE?

whlutmcx

whlutmcx1#

一、义务通知:

PowerShell伊势不再积极开发there are reasons not to use it(底部),特别是无法运行PowerShell (Core) 6+
积极开发的编辑器提供了最佳的PowerShell开发体验,跨PowerShell版本和平台,是
Visual Studio Code**及其PowerShell extension
伊势
Colin's helpful answer是一个实用的解决方案:打开一个 * 新选项卡 * 并关闭旧选项卡。

然而,新会话总是保留旧会话的 * 环境变量 *,因为伊势托管PowerShell SDK * 进程内 ,而不是将powershell.exe作为 * 子进程 * 运行。
因此,要在 current 选项卡中重新启动会话,您必须指示托管的System.Management.Automation.PowerShell示例放弃其当前运行空间并创建一个新的运行空间-我不知道有什么方法可以做到这一点。
然而,即使这是可能的,
环境变量 * --存在于运行伊势的 * 过程 * 的级别--也将被保留。

Visual Studio代码

    • 可以在 * 当前 * 选项卡中启动新会话,并且*无需 * 继承旧会话的环境变量

当集成终端运行的是PowerShell扩展附带的PowerShell Integrated Console(相当于伊势中的控制台窗格)时,您可以通过单击终端面板工具栏中的垃圾桶图标终止当前示例,如下所示。
完成此操作后,系统将提示您启动一个 new session,该会话将在一个新的powershell.exe/pwsh * 子进程 * 中运行。

或者,最好是-您可以将PowerShell扩展配置为每当您启动一个新的调试会话时 * 自动 * 启动一个新的会话*,正如zett42所指出的:

  • 打开设置(Ctrl-,)视图,搜索powershell temporary并打开PowerShell > Debugging: Create Temporary Integrated Console设置。
  • 或者:将"powershell.debugging.createTemporaryIntegratedConsole": true直接添加到settings.json文件中。

这会为每个调试会话 * 自动启动一个新的临时PowerShell集成控制台 *,该控制台将保持打开状态,直到您启动下一个调试会话,此时新的临时控制台将替换旧的控制台。

  • 奇怪的是,在扩展版本2022.11.0中,您不能将exit退出PowerShell集成控制台,但如果需要,您可以使用垃圾桶图标或Stop-Process -Id $PID来终止它,在 * 临时 * 控制台的情况下,(值得推荐的是)* 不会 * 提示您重新启动它;相反,下一个调试会话将根据需要创建一个新的临时控制台。
    此配置避免了一个主要陷阱,该陷阱 * 总是*困扰ISE(并且可能部分地是提示问题的原因)以及PowerShell扩展的 * 默认 * 配置:
  • 在那里,代码以点源方式运行,即直接在同一会话的顶层范围中运行,从而较早调试运行留下的状态可能干扰后续调试运行;例如,创建一个内容为(++$i)的脚本并重复运行它-您将看到$i在每次运行时都递增。
  • 为每次调试运行启动新会话可以避免此问题。
nwnhqdif

nwnhqdif2#

Ctrl+t打开一个新的powershell标签页,该标签页就像一个新的powershell会话一样启动。

qvsjd97n

qvsjd97n3#

尝试以下任一方法清除变量存储器,应有所帮助

exit     # Exit will quit from Powershell. 

Get-Variable -Exclude PWD,*Preference | Remove-Variable -EA 0 # this will kill all the memory on current session

相关问题