是否有全局的、持久的 CMD 历史?

rao*_*son 142 windows history windows-command-prompt command

有时我会忘记 CMD 命令的确切语法,然后我想搜索我自己的 CMD 历史记录。显然,在同一个会话中,您可以使用向上和向下箭头键浏览它,但是以前的 CMD 会话的历史呢?是否有一个文件,一个历史记录被写入的日志,或者它是否都进入了数字涅盘?

谢谢!

Rob*_*Bak 86

不是本地的,但请查看:http : //mridgers.github.io/clink/,使 cmd.exe 更有效率。从项目页面引用功能:

Powerful Bash-like line editing from GNU's Readline library.
Superior path completion (TAB).
Paste from clipboard (Ctrl-V).
Support for the completion of executables/commands, and environment variables.
Undo/Redo (Ctrl-_ or Ctrl-X, Ctrl-U)
Improved command line history.
Persists across sessions.
Searchable (Ctrl-R and Ctrl-S).
History expansion (e.g. !!, !<string>, and !$).
Scriptable completion using Lua.
Run Code Online (Sandbox Code Playgroud)

  • 有没有计划在 Windows 中默认包含它?:D (8认同)
  • 碰杯解决了一切 (5认同)

Mas*_*imo 55

否,会话结束时无法保存 Windows 命令提示符历史记录。

  • 您可以按 F7 查看当前会话的历史列表。 (26认同)
  • 您可以通过运行 `doskey.exe /history`(这也是 F7 快捷方式的来源,顺便说一句)来查看/保存历史记录,但无法在您的下一个会话中重新加载它。 (9认同)
  • 好的,让我改写 :-) Windows 命令解释器(“cmd.exe”)不提供任何对保存/导出/保留历史记录的支持,如果有的话,微软没有记录它,而且没有人能够找到它。你当然可以尝试解决这个问题,就像肖恩建议的那样,但没有(或似乎有)对此没有内置支持。 (8认同)
  • *CURRENT* session 是这里的关键字。 (7认同)
  • 真的?你怎么会知道这事?很抱歉向您提问,我想您是对的,但是除非您编写该死的东西,否则您怎么知道 ;) (3认同)

Sea*_*arp 22

Massimo 是正确的,您的命令提示符历史记录不会跨会话持续存在。您可以通过键入doskey /history > history.txt在关闭提示之前手动获取它

或者...您可以使用PowerShell作为您的 CMD 提示符,并按照这篇文章在会话中保留您的历史记录。


小智 17

您可以使用clink

Clink 将原生 Windows shell cmd.exe 与 GNU Readline 库的强大命令行编辑功能相结合,提供丰富的补全、历史和行编辑功能。

安装 clink 的最简单方法是使用Chocolatey。安装 Chocolatey 后,您可以通过键入来安装 clink

choco install clink
Run Code Online (Sandbox Code Playgroud)

从下次启动 cmd.exe 开始,它应该跨会话存储历史记录。

  • 由于这篇文章,最终决定给“巧克力”一个机会。安装就像 macOS 中的 `brew` 一样简单。现在我在 Windows 中有一个类似 Bash 的命令提示符! (2认同)

mMo*_*ntu 7

可以将当前历史保存到文件中,

`$ doskey /history > somefile.txt`
Run Code Online (Sandbox Code Playgroud)

但似乎没有办法把它作为历史载入。只能使用命令行参数来加载和执行所有行,

cmd.exe /K somefile.txt

, 加载 doskey 宏列表有什么用。此调用可以包含在快捷方式中,因此您无需每次都键入;这个参考有一些关于这种方法的附加信息

正如@RobertBak 所建议的,Superuser有一个类似的问题它带来了一些替代方案,包括clink