有没有办法自动将命令历史记录保存到cmd.exe中的文件,类似于bash的bash_history?

时间:2012-03-03 00:29:09

标签: command-line batch-file command cmd

我知道可以做到

doskey /history 

在特定时间点保存命令历史记录,但我想知道是否有办法主动将命令历史记录保存到文件中,因为命令正在发布。

关闭命令提示符后,历史记录将丢失,因此在完成命令提示时很容易意外关闭命令提示符。

我希望能说出类似的话:

log Commands.log

然后发出我的命令,并将命令保存到Commands.log。

3 个答案:

答案 0 :(得分:6)

您可以创建一个doskey宏来重新映射EXIT命令,如下所示:

doskey exit=doskey/history$g$gc:\temp\commands.log$texit $1 $2

每次通过键入“exit”退出提示时,这会将命令历史记录的内容附加到名为“c:\ temp \ commands.log”的文件中。

注意:我没有测试使用EXIT的“/ B exitCode”参数的潜在副作用,但是因为你用“$ 1 $ 2”捕获参数所以不应该有任何副作用“无论如何。

这并不能完全满足您的需求,但只要您使用EXIT退出(仅关闭窗口),它就会捕获您的命令历史记录。

DOSKEY宏上的更多信息和示例如下: http://technet.microsoft.com/en-us/library/bb490894.aspx

答案 1 :(得分:0)

我知道已经晚了,但是我可以看到两种选择。

修复clink 或包含cmder的更完整内容

每次打开cmd都会碰碰,效果很好

答案 2 :(得分:0)

正如Novy所说,尝试Clink;而且还使用以下链接,因此它也可以在管理模式下使用。 run cmd with clink as administrator in windows to save your command history permanently

enter image description here