100

最近、コマンドを実行する必要がありましたが、残念ながら、コマンドラインでパスワードを入力する必要がありました。

その後、「クリア」で画面をクリアしましたが、問題のあるコマンドがセッション履歴に表示されないように、コマンド履歴もクリアしたいと思いました。残念ながら、Clear-Historyコマンドレットは、ドキュメントに記載されていることを実際には実行していないようです。Clear-Historyを実行しても、セッション履歴にはまったく影響がないようです。

ポップアップ履歴メニューに以前のコマンドが表示されたままで、上キーを押して古いコマンドをスクロールできます。問題を示すスクリーングラブは次のとおりです。

PowerShellの履歴クリアの失敗

Get-Commandを使用して、Clear-Historyが実際に期待される組み込みのPowerShellコマンドレットを実行していることを確認しました。

「Clear-History-count10-newest」など、いくつかのバリエーションを試しましたが、すべて効果がありませんでした。「Clear-History-id3」などの正確な履歴IDを指定すると、次のようなエラーが発生します。

Clear-History : Cannot locate history for Id 3.

画面にコマンド#3が表示されていても。

4

4 に答える 4

169

Windows 10では、Alt+F7 およびclear-history. 履歴は、次の場所にあるテキスト ファイルに保存されていることがわかります。

(Get-PSReadlineOption).HistorySavePath

そのファイルから問題のある行を削除し、現在のセッションを終了します (またはCB の回答でクリアします)。

履歴を一時的に無効にする簡単な方法については、このリクエストに賛成票を投じることができます。

于 2016-04-27T20:17:34.280 に答える
46

画面上の表示履歴 ( ) をクリアするには、+F7を押す必要があります。AltF7

Clear-Historyこの履歴は、コマンドレットによってクリア可能な履歴を持つ PowerShell ではなく、コンソール バッファーによって管理されます。

スクリプトを作成するには、次を試してください。

[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Windows.Forms.SendKeys]::Sendwait('%{F7 2}')
于 2012-11-06T19:24:17.290 に答える