2012-03-03 24 views
9

我知道,一个可以做有没有什么办法可以自动将命令历史记录保存到cmd.exe文件中,类似于bash的bash_history?

doskey /history 

保存命令历史记录在一个特定的时间点,但是,我不知道是否有一种方法,命令历史记录主动保存到一个文件作为正在发出的命令。

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

我希望能够这样说:

log Commands.log 

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

回答

6

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

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

这将您的命令历史记录的内容追加到一个名为“C:\ TEMP \ commands.log”每当您通过输入“exit”退出提示时。我还没有测试过使用EXIT的“/ B exitCode”参数的潜在副作用,但是不应该有任何问题,因为无论如何您都要用“$ 1 $ 2”捕获参数。

这并不完全符合您的要求,但只要您退出使用EXIT(而不是关闭窗口),它就会捕获您的命令历史记录。

更多信息和DOSKEY宏样品在这里: http://technet.microsoft.com/en-us/library/bb490894.aspx

+0

命令效果很好,但你必须指定一个已经存在的目录 - 它不会为你创建的目录。从我可以告诉的是,这个宏只在当前的dos会话期间持续。所以每次打开命令提示符时都必须输入。 – icc97 2014-10-29 13:37:40

+1

如果使用以下目标创建快捷方式:'%windir%\ system32 \ cmd.exe/K doskey exit = doskey/history $ g $ g%USERPROFILE%\ commands.log $ texit $ 1 $ 2'这a)遵循unix把它保存到你的主目录的概念,b)当你运行这个捷径时运行这个命令,这样你就不必每次都输入它 – icc97 2014-10-29 14:02:38

相关问题