Если вы запускаете это из командной строки или командного файла, командная оболочка интерпретирует |
как канал, а не чередование, к которому мы привыкли.В командной оболочке |
означает взять стандартный вывод предыдущей команды и «передать» его в стандартный ввод следующей команды, например:
C:\>dir |find ".txt"
Я не нашел ссылок на чередования в документация .Если вы можете найти способ сделать то, что вы хотите, без изменений, вы можете попробовать опцию findstr /G:file
(где файл содержит регулярное выражение).Таким образом, вам не придется сражаться со специальными символами командной оболочки.