6

コマンドを使用して PowerShell 履歴を読み込もうとしました

Import-Clixml ~\history.clixml | Add-History

私の $profile で。

それらを保存するカスタムの終了関数も作成しました。

function global:xx 
{
  Get-History | Export-Clixml ~\history.clixml
  exit
}

「xx」と入力して PowerShell を終了し、PowerShell を再起動します。エラーなしでロードhistory.clixmlされますが、上矢印キーをクリックしてもコマンドが表示されません。このキーは通常、コマンド履歴から以前のコマンドにアクセスできるように機能します。

4

4 に答える 4

12

私はこれを以前に調べましたが、それは不可能です。上矢印キーとファンクション キー ( F8での補完やF7を押したときに表示されるリストなど) でアクセスされるバッファーは、セッションごとであり、変更できません。

ただし、Add-Historyで追加されたものを含め、履歴内のコマンドにすばやくアクセスするには、 #に続けてパターンを入力し、 [TAB]を押して、パターンに一致する履歴内のすべてのコマンドを循環します。たとえば、#dsquery[TAB]「dsquery」を含む履歴の最新のコマンドに展開し、[TAB]をさらに押すと、「dsquery」を含む他のコマンドを逆方向に循環します。

パターンがどのように一致するかは、TabExpansion関数によって決定されます。デフォルトでは、タブ展開履歴エントリは、ほとんどの場合、コマンドからの文字列でうまく機能し、記号やスペースは使用できません。と入力して、関数のコードを調べることができます$function:TabExpansion必要に応じて、独自のTabExpansion関数を定義して、タブ展開の動作を変更できます。ただし、自分が何をしているのか本当によくわからない場合は、ゼロから始めるのではなく、既存のコードを微調整することをお勧めします。TabExpansion関数はプロンプトでのすべてのタブ補完に影響するため、他の機能を壊す可能性があるためです。タブ補完コマンドまたはパスとして。

于 2013-07-25T17:18:59.917 に答える
0

PowerShell 3 以降では、ここで読むことができる PSReadline の助けを借りてこれが可能です。

このモジュールはまさにあなたが望むことを行います - それはあなたの履歴を内部履歴にロードするので、上/下矢印は以前のセッションからの履歴で機能します.

于 2013-09-20T00:36:20.390 に答える