Подтвердить что ты не робот

Символ периодического эхо-сигнала, вызывающий неожиданное поведение

У меня есть переменная в моем командном файле, и она содержит символ pipe (this one: |), поэтому, когда я повторяю переменную, я получаю сообщение об ошибке с непризнанной внутренней/внешней командой.

Мне нужен способ, чтобы заставить его правильно или правильно отследить его, но все же удалить все после и после | символ, а также любые дополнительные пробелы перед ним.

4b9b3361

Ответ 1

Существует несколько специальных символов, которые обычно должны быть экранированы при использовании в пакетных файлах Windows. Вот неполный список: < > & | ^ %

Эквивалентный символ ^. Итак, чтобы получить литерал |, вы должны сделать следующее:

echo ^|

Когда специальный символ находится в переменной, он становится немного сложнее. Но если вы используете специальный синтаксис, вы можете заменить символы в переменной следующим образом:

set X=A^|B

REM replace pipe character with underscore
set Y=%X:|=_%

echo %Y%
REM prints "A_B"

Ответ 2

Вы должны избегать | перед тем, как напечатать var. Следующее отпечатает a | b

@echo off

set x=a^|b
echo %x:|=^|%

Ответ 3

избежать его

echo \|

или завернуть в кавычки

echo "|"