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

mer*_*011 9 command-line command cmd batch-file

我知道可以做到

doskey /history 
Run Code Online (Sandbox Code Playgroud)

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

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

我希望能够说出类似的话:

log Commands.log
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*arc 6

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

doskey exit=doskey/history$g$gc:\temp\commands.log$texit $1 $2
Run Code Online (Sandbox Code Playgroud)

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

注意:我没有使用EXIT的"/ B exitCode"参数测试使用它的潜在副作用,但是不应该有,因为你无论如何都要用"$ 1 $ 2"捕获参数.

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

有关DOSKEY宏的更多信息和示例,请访问:http://technet.microsoft.com/en-us/library/bb490894.aspx

  • 如果您使用以下目标创建快捷方式:`%windir%\system32\cmd.exe /K doskey exit=doskey/history$g$g%USERPROFILE%\commands.log$texit $1 $2`,则 a) 遵循 unix 概念将其保存到您的主目录,b)当您运行此快捷方式时运行此命令,这样您就不必每次都键入它 (2认同)