2012-02-16 10 views
2

Powershellでこれを行うことができるかどうか不思議です。PowerShellの履歴をPowerShellの終了のテキストファイルに書き込むことはできますか?

Out-Fileコマンドを使用すると、出力をファイルに書き出すためにパイプすることができます。そうすれば、すべての履歴コマンドをテキストファイルに送ることができます。

質問が終了するたびに履歴コマンドをテキストファイルに送信できますか?
これは大きな助けになるかどうかわかりませんが、ライナーを1つ書き、PSコンソールを誤って終了した場合、最近のチャットの会話のようにすべての履歴コマンドがテキストファイルに保存されることがあります。

+1

ここをクリックしてください:http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/573c1870-5e31-43a1-a863-3f2ebed418dfコンソールをキャッチするのは難しい任務のようです'x'をクリックして閉じます –

+0

この投稿をチェックしてください:http://www.nivot.org/post/2009/08/15/PowerShell20PersistingCommandHistory.aspx –

答えて

3

$ profileにstart-transcript -path .\console.txt -appendを使用すると、Hだけでなくすべてのコンソールアクションをtxtファイルに含めることができますistoryしかしコマンドのリターンも。

+0

本当に面白いと思うよ。私はGet-Helpをして、「Windows PSセッションの全員またはパーティのレコードをテキストファイルに作成する」と言っています。 – Mitul

+0

はい!あなたの質問と同じ理由で私の$ profileでこのコマンドを使用します! –

+0

もう私はいませんが、これを私のプロフィールに載せることは、PSを学び始めたときの大きな助けとなりました。 – EBGreen

1

「退出」を常に捕まえるのは難しいです。そのアクションイベントに..

Powershell profile "on exit" event?

をあなたはフォーカス喪失時のイベントに登録することができますが、問題は、ユーザーが「終了」は、彼らがXまたは他の方法で緊密にヒットしない場合ときには、唯一の難点でしょうですあなたはちょうどget-history(デフォルト100以上を必要とする場合は数字を指定)し、ファイルにセットコンテンツを設定します...

Start-Transcriptを使う方が良いかもしれませんが、Console ..

+0

powershell.exitingイベントはほとんど役に立ちません。このイベントが発生したときにrunspaceが実際に非同期にシャットダウンするので、あなたがフックしたスクリプトは無作為に失敗します。古典的な競争状態。 – x0n

2

別の可能性:

function start-histcap { 
clear-history 
$host.enternestedprompt() 
get-history | out-file c:\testfiles\commandhist.txt -append 
} 

ランが-histcapを起動し、あなたがネストされたプロンプトになります。あなたが何をしても、そのネストされたプロンプトを終了すると、履歴ファイルに書き込まれます。

関連する問題