Просто кавычка символ |
для передачи его во внешнюю программу. Цитирование необходимо для PowerShell , что |
следует интерпретировать буквально , а не как оператор конвейера.
PS> 'a|b' | & findstr /L '|' # findstr.exe sees a literal | char.; & is optional here
a|b # Literal '|' was found in input string 'a|b'
Единственная необходимая дополнительная работа - это если целевая программа сама рассматривает без кавычек |
[1] как имеющее особое значение, особенно при вызове cmd.exe
или пакетный файл:
PS> cmd /c echo '"|"'
"|"
Обратите внимание на встроенные двойные кавычки , которые гарантируют, что cmd.exe
видит "|"
в качестве аргумента и, следовательно, не интерпретирует |
как его оператор конвейера.
(Это странная особенность внутренней команды echo
, что в этом случае двойные кавычки сохраняются .)
[1] Несмотря на то, что '|'
указан в командной строке PowerShell выше, за кадром PowerShell передает его без кавычек , что он делает всякий раз, когда аргумент не имеет встроенных пробелов .