Как скопировать текст из консоли cmd и сохранить форматирование (с цветом)?


16

Я хочу вырезать и вставить из cmd и сохранить информацию о цвете при вставке в другое приложение. Это похоже на вставку в большинстве приложений с форматированием информации.

Есть ли способ сделать это? Или это можно сделать с помощью приложения, похожего на cmd?

альтернативный текст

Ответы:


7

Люди PowerShell в своем блоге опубликовали статью под названием: « Цветной снимок экрана консоли в HTML и RTF».

Когда он находится в файле RTF с цветами, откройте RTF с помощью Word или OpenOffice и скопируйте текст в целевое приложение.

PowerShell - отличная замена cmd.exe с гораздо большим количеством функций, попробуйте.


2
Это не столько замена, сколько альтернатива. Совместимость диктует, что она не может заменить cmd :-)
Joey

Да, ты прав, Йоханнес! "Danke schön" для разъяснения :-).
Snark

+ Awesome! Благодарю. Сначала это немного сбивало с толку, поскольку я никогда не использовал PowerShell, но он работал точно так, как описано.
Кит Бентруп

Существует Gist с кодом: gist.github.com/LeoColomb/1a683e7a05da067259e9
августа

Ссылка не работает.
jippyjoe4

1

Ответ Снарка полезен, но ссылка не работает. Обновленная ссылка на сообщение в блоге MSDN находится здесь: Цветной снимок экрана консоли в HTML и RTF.

Вам необходимо скопировать функции из поста в блоге, а затем вставить их в PowerShell. И тогда вы можете запускать команды, такие как:

$ htmlFileName = "$ env: temp \ ConsoleBuffer.html"
. \ Get-ConsoleAsHtml | вне файла $ htmlFileName -encoding UTF8


0

Цвета в cmd не совпадают с обычными цветами, это интерпретатор, интерпретирующий цветовые коды. Я не верю, что это возможно, и, проверяя в Console2, он тоже не может этого сделать, так что, вероятно, по очень веской причине.


AFAIK, консоль Windows не поддерживает цветовые коды ANSI (как эмуляторы терминала Unix); программа должна вызывать специальные функции для установки цвета текста. Кроме того, программа может прочитать все содержимое своего экранного буфера (именно так работает этот фрагмент PowerShell) - и было бы возможно заставить Console2 также запомнить все. Там нет никакой реальной причины, препятствующей этому.
user1686

Ну, я часто ошибаюсь;) Я предполагал, что эти два будут работать одинаково, поскольку инструменты Cygwin имеют рабочий цвет, но они, должно быть, реализовали это сами.
Фоши

@grawity выглядит так, как будто ANSI изначально поддерживается в консоли Windows в Windows 10 msdn.microsoft.com/en-us/library/windows/desktop/…
Энтони Хэтчкинс

0

Есть длинный способ сделать это, используя захват экрана?

  1. Хит Alt + PrtScr
  2. Это скопирует окно в буфер обмена
  3. С начала введите mspaint
  4. Нажмите на Edit / Paste или Ctrl-V, чтобы вставить содержимое буфера обмена
  5. Отредактируйте его, чтобы отобразить только командное поле и сохраните его в формате PNG (GIF приведет к тому, что Paint будет размывать классический серый текст, а JPEG создаст артефакты вокруг вашего текста).

Затем эти снимки экрана будут готовы для вставки в Word в качестве изображения для документирования. Конечно, это не текст, поэтому его нельзя будет выбрать. Но это может быть лучше, чем ничего.


Единственное, чего не хватает в этом обходном пути, - это запустить OCR для выходного изображения :) Overkill? Возможно, но, вероятно, легче иметь дело, чем принятый ответ.
kayleeFrye_onDeck
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.