14

Можно ли скопировать несколько строк из командной строки Windows, не вставляя новую строку, где каждая строка достигает конца терминала?

Например, если у меня есть следующая строка в консоли:

c:\very_long_path_here\more_path_here>command_i_want_to_copy -with -some
arguments that wrap over lines.

Если я выберу это и скопирую, после слова 'some' я получу новую строку, которую мне придется удалить вручную.

Есть ли способ скопировать данные (команда, которая будет проанализирована, вывод распечатан) в том виде, в котором она интерпретируется / печатается, а не в виде жестких строк?

5 ответов5

11

Командная строка Windows в этом аспекте печально известна. Невозможно получить поведение терминала Linux (по крайней мере для пред-Windows 10 согласно комментарию Луу).

Однако в cmd.exe есть неясная функция, которая помогает: удерживая нажатой клавишу shift при щелчке правой кнопкой мыши в выбранной области (для копирования), удаляются ВСЕ новые строки в скопированном тексте.

Если вы хотите выбрать одну длинную командную строку (охватывающую несколько терминальных линий), это делает то, что вы хотите. Тем не менее, он всегда удаляет все новые строки, поэтому невозможно выбрать несколько командных строк (или сценарий) разумным способом.

Подробная процедура:

  • Выберите длинную командную строку, используя левую кнопку мыши
  • Нажмите вниз сдвиг
  • Щелкните правой кнопкой мыши в выбранной области (для копирования)
  • Отпустить сдвиг
  • Теперь выделенный текст находится в буфере копирования без перевода строки, и вы можете, например, снова вставить его в cmd.exe, используя правую кнопку мыши.
2

Другой вариант - открыть контекстное меню строки заголовка окна консоли, перейти в «Свойства» и сделать ширину экранного буфера достаточно большой, чтобы вещи не переносились. (9999 представляется максимальным значением.)

Если вам приходится делать это много, вы можете изменить опцию в настройках по умолчанию вместо свойств.

Конечно, этот метод не работает, если строки длиннее 9999 символов.

0

Чтобы включить это для Windows 10:

В окне "cmd" или "Windows Powershell" перейдите к свойствам (щелкните значок в левом верхнем углу) и выберите параметр "Включить выбор переноса строк".

В моем приглашении Powershell это не было включено, и это помогло мне.

-2

Просто скопируйте код в блокнот, затем в строке меню нажмите « Format затем « Word Wrap

-4

Используйте SET, а затем объедините части в выражении. Дополнительно вы можете сделать для таких целей пакетный файл или макрос.

@set WAIKTools=%ProgramFiles%\WAIK\Tools\amd64
@set LabelCD=GRTMPVOL_RU

@IF "%time:~0,1%" GTR "0" SET current=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%@%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%
@IF "%time:~0,1%" LSS "0" SET current=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%@0%TIME:~1,1%.%TIME:~3,2%.%TIME:~6,2%

"%WAIKTools%\oscdimg.exe" -h -m -n -l%LabelCD% -b"%cd%\boot\w32sp3.bif" "BUILD-%current%" "BUILD-%current%-ISO\%LabelCD%.ISO"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .