我可以将PowerShell历史记录写入PowerShell出口上的文本文件吗?

时间:2012-02-16 13:52:18

标签: powershell

我很想知道我们是否可以在Powershell中做到这一点。

使用Out-File命令我们可以管道它以将输出写入文件。这样我就可以将所有历史命令发送到文本文件。

问题是我每次退出时都可以将历史命令发送到文本文件吗? 我不知道这是否会有很大的帮助,但有时如果你写了一个内衬而你不小心退出了PS控制台,那么所有的历史命令都会像最近的聊天对话一样保存到文本文件中。

3 个答案:

答案 0 :(得分:4)

您可以在$ profile中使用start-transcript -path .\console.txt -append在txt文件中包含所有控制台操作,不仅包括历史记录,还包括命令的返回值。

答案 1 :(得分:2)

另一种可能性:

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

运行start-histcap,您将进入嵌套提示符。无论你做什么,退出嵌套提示时都会写入历史文件。

答案 2 :(得分:1)

很难总是赶上“退出”。你可以注册onexit事件,但问题是,当用户输入“退出”而不是他们点击X或以任何其他方式关闭时,它只会被捕获..

Powershell profile "on exit" event?

所以在动作事件中你只需要获取历史记录(如果需要超过默认值100,请指定一个数字)然后将内容设置为文件......

你可能最好使用Start-Transcript,但这只适用于Console ..