Как убрать пустую строку из вывода команды echo в Windows

По умолчанию, консольная команда echo в командной строке Windows добавляет символ новой строки к своему выводу, и это не всегда бывает удобно. Недавно я прикручивал в очередной раз "Копировать как путь" (на этот раз это была кнопка тулбара Classic Shell), и решил разобраться и избавиться от новой строки в выводе echo.

Итак, вот вывод echo по умолчанию:

echoСтрелочка указывает на лишнюю строчку в выводе команды.

Чтобы избавиться от неё, необходимо скомбинировать несколько команд, как указано ниже:

echo | set /p="Тестируем вывод команды"

Совсем другое дело:

echo no new lineКак же это работает? Магии здесь нет:

  1. команда set /p= выводит на экране запрос, указанный после знака "равно". Эта возможность обычно используется для организации диалогов в командных файлах. Давайте выполним её отдельно:
    setКоманда выведет строчку и будет ожидать ввода от пользователя, пока тот не введет какой-либо текст и не нажмет энтер.
  2. Пустая команда echo отправит в вывод команды set тот самый злосчастный символ новой строки, set расценит его как реакцию пользователя и нажатие Enter, и закончит свою работу.
  3. Таким образом, на экране будет только вывод команды set /p, а она не добавляет лишнюю строчку! Не правда ли, здорово?

Ну а конкретно для моей задачи с помещением нужного мне текста в буфер обмена без дополнительной строчки только остается применить команду clip в сочетании с echo и set, вот так:

echo | set /p="Тестируем вывод команды" | clip

Как убрать пустую строку из вывода команды echo в Windows: 4 комментария

  1. Спасибо! То, что нужно. Как раз давно искал как избавиться от перевода строки при копировании в буфер.

Обсуждение закрыто.