Powershell IDE:如何在不离开 Powershell ISE 的情况下重新启动交互式 shell 以清除所有变量?
Powershell IDE: How to restart interactive shell to clear all variables without leaving Powershell ISE?
假设我已经使用 Powershell ISE 一段时间了,我的环境 space 开始变脏,我需要重新启动交互式 shell.. . 我不想关闭我的编辑器并重新打开它。如何重新启动 powershell ISE interactive shell 以在不关闭并重新打开 Powershell ISE 的情况下清除所有变量?
Ctrl+t 打开一个新的 powershell 选项卡,就像是一个新的 powershell 会话一样启动。
首先,必须注意的是:PowerShell ISE是no longer actively developed and (bottom section), notably not being able to run PowerShell [Core] 6+. The actively developed editor that offers the best PowerShell development experience, across platforms, is Visual Studio Code, combined with its PowerShell extension.
ISE:
是一个实用的解决方案:打开一个 新标签页 并关闭旧标签页。
但是,新会话总是保留旧会话的环境变量,因为 ISE 托管 PowerShell SDK 进程中而不是 运行宁 powershell.exe
作为 子进程 .
要在 current 选项卡中重新启动会话,您必须指示托管 System.Management.Automation.PowerShell
实例放弃其当前 运行 空间并创建一个新的 - 我不知道有什么方法可以做到这一点。
然而,即使可能,环境变量 - 存在于 进程 的级别,运行 是 ISE - 将被保留。
Visual Studio代码:
可以在 Visual Studio 代码中执行此操作 - 在当前选项卡中并且不继承旧会话的环境变量:
虽然集成终端 运行ning 正在 运行ning PowerShell Integrated Console,它是 PowerShell 扩展附带的 - 相当于 ISE 中的控制台窗格 - 你可以通过单击终端面板工具栏中的垃圾桶图标来终止当前实例,如下所示。
这样做之后,系统会自动询问您是否要开始一个新会话,运行s 在新的 powershell.exe
/ pwsh
child 中进程.
或者 - 最好 - 您可以将 PowerShell 扩展配置为 自动 启动新会话 每当您开始新的调试会话时,正如zett42指出的那样:
任一:打开设置(Ctrl-,)视图,搜索powershell temporary
并打开PowerShell > Debugging: Create Temporary Integrated Console
设置。
或者:将 "powershell.debugging.createTemporaryIntegratedConsole": true
直接添加到您的 settings.json
文件。
这会为每个调试会话自动启动一个新的临时 PowerShell 集成控制台,该控制台将保持打开状态,直到您开始下一个调试会话,此时新的临时控制台会简单地替换旧控制台。
- 奇怪的是,从扩展版本
2020.6.0
开始,您无法 exit
退出 PowerShell 集成控制台,但您也可以使用垃圾桶图标将其终止,在这种情况下临时 控制台将(值得称赞)不会 提示您重新启动它;相反,下一个调试会话将根据需要创建一个新的临时控制台。
此配置避免了影响 ISE 总是 的主要陷阱(并且可能部分是提示问题的原因)以及PowerShell 扩展的 默认 配置:
那里,代码 运行s 点源,即直接在同一会话的顶级范围内,因此 之前留下的状态调试 运行s 会干扰后续调试 运行s;例如,创建一个包含 (++$i)
和 运行 内容的脚本,它会重复 - 您会看到 $i
每次递增,跨越 运行s。
每次调试都启动一个新会话 运行 可以避免这个问题。
尝试以下任一方法清除变量内存,应该会有帮助
exit # Exit will quit from Powershell.
Get-Variable -Exclude PWD,*Preference | Remove-Variable -EA 0 # this will kill all the memory on current session
假设我已经使用 Powershell ISE 一段时间了,我的环境 space 开始变脏,我需要重新启动交互式 shell.. . 我不想关闭我的编辑器并重新打开它。如何重新启动 powershell ISE interactive shell 以在不关闭并重新打开 Powershell ISE 的情况下清除所有变量?
Ctrl+t 打开一个新的 powershell 选项卡,就像是一个新的 powershell 会话一样启动。
首先,必须注意的是:PowerShell ISE是no longer actively developed and
ISE:
但是,新会话总是保留旧会话的环境变量,因为 ISE 托管 PowerShell SDK 进程中而不是 运行宁 powershell.exe
作为 子进程 .
要在 current 选项卡中重新启动会话,您必须指示托管 System.Management.Automation.PowerShell
实例放弃其当前 运行 空间并创建一个新的 - 我不知道有什么方法可以做到这一点。
然而,即使可能,环境变量 - 存在于 进程 的级别,运行 是 ISE - 将被保留。
Visual Studio代码:
可以在 Visual Studio 代码中执行此操作 - 在当前选项卡中并且不继承旧会话的环境变量:
虽然集成终端 运行ning 正在 运行ning PowerShell Integrated Console,它是 PowerShell 扩展附带的 - 相当于 ISE 中的控制台窗格 - 你可以通过单击终端面板工具栏中的垃圾桶图标来终止当前实例,如下所示。
这样做之后,系统会自动询问您是否要开始一个新会话,运行s 在新的 powershell.exe
/ pwsh
child 中进程.
或者 - 最好 - 您可以将 PowerShell 扩展配置为 自动 启动新会话 每当您开始新的调试会话时,正如zett42指出的那样:
任一:打开设置(Ctrl-,)视图,搜索
powershell temporary
并打开PowerShell > Debugging: Create Temporary Integrated Console
设置。或者:将
"powershell.debugging.createTemporaryIntegratedConsole": true
直接添加到您的settings.json
文件。
这会为每个调试会话自动启动一个新的临时 PowerShell 集成控制台,该控制台将保持打开状态,直到您开始下一个调试会话,此时新的临时控制台会简单地替换旧控制台。
- 奇怪的是,从扩展版本
2020.6.0
开始,您无法exit
退出 PowerShell 集成控制台,但您也可以使用垃圾桶图标将其终止,在这种情况下临时 控制台将(值得称赞)不会 提示您重新启动它;相反,下一个调试会话将根据需要创建一个新的临时控制台。
此配置避免了影响 ISE 总是 的主要陷阱(并且可能部分是提示问题的原因)以及PowerShell 扩展的 默认 配置:
那里,代码 运行s 点源,即直接在同一会话的顶级范围内,因此 之前留下的状态调试 运行s 会干扰后续调试 运行s;例如,创建一个包含
(++$i)
和 运行 内容的脚本,它会重复 - 您会看到$i
每次递增,跨越 运行s。每次调试都启动一个新会话 运行 可以避免这个问题。
尝试以下任一方法清除变量内存,应该会有帮助
exit # Exit will quit from Powershell.
Get-Variable -Exclude PWD,*Preference | Remove-Variable -EA 0 # this will kill all the memory on current session