【问题标题】:Is there a way to have the PowerShell screen clear itself before each command?有没有办法让 PowerShell 屏幕在每个命令之前自行清除?
【发布时间】:2021-02-06 06:22:17
【问题描述】:

我在玩 PowerShell,发现自己在运行命令之前不断地输入cls。或者更糟的是,我运行了一个命令,意识到其他东西的输出让导航变得很痛苦,运行cls,然后重新运行我该死的命令。 有没有办法在运行每个命令之前清除上一个命令的输出?显然,如果可以使用命令或简单的东西来切换它,那将是理想的,但无论如何都可以。 :) 另外,我正在玩 PS 3ISEPowerGUI

【问题讨论】:

  • 如果您在 ISE 中,工具栏中还有刮刀按钮

标签: powershell powershell-3.0 powergui


【解决方案1】:

知道这是旧的,但我想我会把它传给其他人看 -

我使用的一个技巧是简单地将“cls”作为我的 PowerShell 编辑器屏幕的第一行(在我的例子中,使用 PowerShell ISE)。然后,每次我运行我的脚本时,ISE 中的 PowerShell 控制台都会被清除,这样可以节省时间,所以那里只显示我最近的运行。

我不建议在生产脚本中保留“cls” - 但它有助于在 ISE 中进行迭代测试,您可以根据脚本输入不断检查 PowerShell 控制台窗口中的输出。

【讨论】:

  • 这是脚本的好方法。对于 ad hoc 命令,也可以添加前缀 cls;
【解决方案2】:

From this article:在 PowerShell 中,为了清除屏幕,您可以键入 Clear-Host;,它的别名,cls;和clear;或等效的[System.Console]::Clear();。

【讨论】:

  • 这个有热键吗?在纯 PowerShell 中,有CTRL+L
【解决方案3】:

当您的 powershell(或相关的 CMD)在 PSEXEC 会话中运行时,CLS、Clear 和 Clear-Host 不起作用。

【讨论】:

  • 如何解决这个问题?
【解决方案4】:

当 PowerShell 提示输入命令时,就会执行一个函数 prompt。在我的系统(PS v3、ISE)上,内置脚本是

$host.ui.rawui.WindowTitle = ($host.ui.rawui.WindowTitle -split ":")[0] + ": $pwd"
$(if (test-path variable:/PSDebugContext) { 
    '[DBG]: ' 
  } else { 
    '' 
  }) + 
'PS' + 
$(if ($nestedpromptlevel -ge 1) { ">>>" } else { "> "})

您可以替换或修改此脚本。例如,您可以将 cls 命令放在上面脚本的顶部。

【讨论】:

  • 当我这样做时,它只是清除了每个命令的输出。所以,这行不通。
  • 我明白了。我以为你只是想要一个关于走哪条路的指针。为了进一步充实这一点:您可以在 cls 之前放置一个读取主机。然后你输入你的命令,输出将被显示,你按回车键清除输出并输入你的下一个命令。如果你稍微修改一下提示的想法,你也可以想出一些其他的方法来做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多