我很想知道我们是否可以在Powershell中做到这一点。
使用Out-File命令我们可以管道它以将输出写入文件。这样我就可以将所有历史命令发送到文本文件。
问题是我每次退出时都可以将历史命令发送到文本文件吗? 我不知道这是否会有很大的帮助,但有时如果你写了一个内衬而你不小心退出了PS控制台,那么所有的历史命令都会像最近的聊天对话一样保存到文本文件中。
答案 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 ..