Answers:
切换到使用PowerShell,然后按照以下站点上的说明启用历史记录:
另外,在cmd.exe中,您可以在会话结束时使用“ doskey / history”来显示您在该会话中键入的内容,但是无法将其真正加载到下一个会话中。
我发现了2种方法,两种方法都不需要切换到PowerShell。
cmd.exe
但它是一个很好的答案,并且clink也支持注入模式。
cmd
它,一直没问题,对此非常满意。
保存历史记录是一个小的工作流程-这是一种不太“繁重”的方式(没有外部库)。
创建一个bat / cmd文件来设置您的历史记录,在这种情况下,我将其称为MyEnvironment.cmd:
doskey save=doskey /history $g$g C:\CmdHistory.log
doskey quit=doskey /history $g$g C:\CmdHistory.log $T exit
doskey history=find /I "$*" C:\CmdHistory.log
cls
然后从“开始->运行”中运行它(您也可以为此设置一个别名):
cmd.exe /K C:\MyEnvironment.cmd
每次关闭会话时,我都单击“退出”-或者如果我害怕在会话中丢失历史记录,则单击“保存”。如果我想grep历史记录中的某些内容,只需点击“ history KEYWORD”。
根据@ dave_thompson_085的评论,AutoRun
如果您不想使用该/K
开关,则该功能可以很好地工作。如果您正确设置了注册表项,则.cmd
或.bat
不必位于中%AppData%
,它可以位于已经存在的相同位置。
如果确实使用该%AppData%
位置,请注意,cmd可能会在“漫游”文件夹(而不是AppData根目录)中查找您的批处理文件。
有关AutoRun
CMD功能的更多信息:https : //superuser.com/a/302553/333316
$g
插入>
,$t
是命令分隔符。
doskey quit=doskey /history
宏创建的输出并将其保存在日志文件中(不执行任何操作或发送错误消息);接下来关闭窗口(丢弃所有内容)。- ^
我想,您可以改用a 来逃避这些字符。像^>^>
和^&
(...而且是的,您只需要一个&符)