如何从cmd控制台复制文本并保持格式(带有颜色)?


Answers:


7

PowerShell人士在他们的博客上发布了标题为:HTML和RTF中的控制台屏幕的彩色捕获的文章。

将其保存在带有颜色的RTF文件中后,使用Word或OpenOffice打开RTF,然后将文本复制到目标应用程序中。

由于PowerShell是具有很多功能的cmd.exe的理想替代品,因此请尝试一下。


2
它不是替代品,而是替代品。兼容性表明它不能替代cmd :-)
Joey

是的,你说得对,约翰内斯!为澄清起见,请使用“ Dankeschön” :-)。
斯纳克

太棒了!谢谢。由于我从未使用过PowerShell,一开始它有点令人困惑,但是它完全按照描述的那样工作。
Keith Bentrup 09年

有一个Gist,其代码为:gist.github.com/LeoColomb/1a683e7a05da067259e9

链接断开。
jippyjoe4

1

Snark的答案很有用,但是链接断开了。MSDN博客文章的更新链接在此处:HTML和RTF中控制台屏幕的彩色捕获

您需要从博客文章中复制功能,然后将其粘贴到PowerShell中。然后,您可以运行以下命令:

$ htmlFileName =“ $ env:temp \ ConsoleBuffer.html”
。\ Get-ConsoleAsHtml | 输出文件$ htmlFileName-编码UTF8


0

cmd中的颜色与普通颜色不同,它是由解释器解释颜色代码。我不认为有可能这样做,并且在Console2中检入它也无法做到,所以这可能是有充分理由的。


AFAIK,Windows控制台不支持ANSI颜色代码(与Unix终端仿真器一样);程序必须调用特殊功能来设置文本颜色。另外,程序可以读取其屏幕缓冲区的完整内容(这就是PowerShell代码段的工作方式)-并使Console2记住所有内容也是可能的。没有真正的理由阻止它。
user1686

好吧,我经常错了;)我以为cygwin的工具具有工作色彩,所以两者的工作原理类似,但是它们必须自己实现。
Phoshi

@grawity看起来像ANSI是在Windows控制台本身支持在Windows 10 msdn.microsoft.com/en-us/library/windows/desktop/...
安东尼Hatchkins

0

使用屏幕截图有很长的路要走吗?

  1. 点击Alt + PrtScr
  2. 这会将窗口复制到剪贴板
  3. 从开始输入 mspaint
  4. 单击编辑/粘贴或Ctrl-V粘贴剪贴板的内容
  5. 编辑它以仅显示命令框并将其保存到PNG(GIF将导致Paint抖动经典的灰色文本,而JPEG会在文本周围创建伪影)。

然后,这些屏幕截图将准备好作为图像插入到Word中以用于记录。当然,它不是文本,因此将无法选择。但这可能总比没有好。


缺少此解决方法的唯一一件事是针对输出图像运行OCR :)过度杀伤力?可能,但可能比接受的答案更容易处理。
kayleeFrye_onDeck
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.