Установить произвольный текст в буфер обмена Windows

320
Adamarla

Я использую, clipчтобы установить текст в буфер обмена. Для этого я использую echo.

echo Works|clip 

Проблема в том, что текст содержит специальные символы, например. | ",

echo (TRUE|FALSE)|clip echo " is a Quote Mark|clip 

Как текст echoдолжен быть экранирован? Есть ли лучший способ установить текст в буфер обмена?

1
Возможный дубликат [как избежать символа трубы | в сценариях с битами?] (https://superuser.com/questions/270004/how-to-escape-pipe-symbol-in-bat-scripts) phuclv 5 лет назад 0
@phuclv Не совсем. Это немного сложнее. Смотри мой ответ. DavidPostill 5 лет назад 0

1 ответ на вопрос

0
DavidPostill

Как текст с эха должен быть экранирован?

Используйте ^escape-символ.

При обвязке, чтобы ^избежать, потребности также ускользают.

Пример 1:

> echo (TRUE^^^|FALSE)|clip 

Содержимое буфера обмена:

(TRUE|FALSE) 

Пример 2:

> echo ^" is a Quote Mark|clip 

Содержимое буфера обмена:

" is a Quote Mark 

Побег персонаж

^ Побег персонажа.

Добавление escape-символа перед символом команды позволяет рассматривать его как обычный текст.

При передаче или перенаправлении любого из этих символов вы должны использовать префикс с escape-символом: & \ < > ^ |

Пример:

^\ ^& ^| ^> ^< ^^ 

Источник цитаты, экранирующих символов, разделителей - Windows CMD - SS64.com


Дальнейшее чтение

Проблема с символом `" `заключается в том, что когда он присутствует, текст не передается в команду clip.` | Clip` повторяется с предыдущим текстом. Экранированный канал вызывает ошибку при передаче в клип. Adamarla 5 лет назад 0
`" `необходимо экранировать при передаче в клип. Также необходимо экранировать` ^ `при передаче в клип. Ответ обновлен. DavidPostill 5 лет назад 0