Як скопіювати текст з консолі cmd і зберегти форматування (з кольором)?


16

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

Чи є спосіб це зробити? Або це можна зробити за допомогою програми, схожої на cmd?

alt текст

Відповіді:


7

На своєму блозі люди PowerShell опублікували статтю під назвою: Кольоровий захоплення екрана консолі в HTML та RTF

Після того, як він знаходиться у файлі RTF з кольорами, відкрийте RTF за допомогою Word або OpenOffice і скопіюйте текст у вашу цільову програму.

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


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

Так, ти маєш рацію, Йоганне! "Danke schön" для уточнення :-).
Снарк

+ Дивовижно! Спасибі. Спочатку це було трохи заплутано, оскільки я ніколи не використовував PowerShell, але він працював саме так, як описано.
Кіт Бентруп


Посилання розірвано.
jippyjoe4

1

Відповідь Снарка корисна, але посилання порушена. Оновлене посилання на допис у блозі MSDN знаходиться тут: Кольорова зйомка екрана консолі в HTML та RTF

Вам потрібно скопіювати функції з повідомлення в блозі, а потім вставити їх у PowerShell. І тоді ви можете запускати команди на зразок:

$ htmlFileName = "$ env: temp \ ConsoleBuffer.html"
. \ get-ConsoleAsHtml | Out-file $ htmlFileName -кодування UTF8


0

Кольори в cmd не такі, як звичайні кольори, це інтерпретатор, який інтерпретує кольорові коди. Я не вірю, що це можливо зробити, і перевіривши в Console2, він також не може це зробити, тому, мабуть, з дуже вагомої причини.


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

Ну, я часто помиляюся;) Я припускав, що вони працюватимуть аналогічно, оскільки інструменти cygwin мають робочий колір, але вони, мабуть, реалізували це самі.
Фоші

@grawity схоже на те, що ansi підтримується в оригінальній формі на
Ентоні Хетчкінс

0

Існує тривалий спосіб зробити це, використовуючи захоплення екрана?

  1. Натисніть Alt + PrtScr
  2. Це скопіює вікно в буфер обміну
  3. З пуску введіть mspaint
  4. Клацніть Редагувати / Вставити або Ctrl-V, щоб вставити вміст буфера обміну
  5. Відредагуйте його, щоб показати лише командне поле та зберегти його у форматі PNG (GIF призведе до того, що Paint затьмарить класичний сірий текст, а JPEG створить артефакти навколо тексту).

Тоді ці знімки екрану будуть готові бути вставлені у Word як зображення для цілей документування. Звичайно, це не текст, тому його не можна вибрати. Але це може бути краще, ніж нічого.


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