У меня неприятная проблема, когда я хочу использовать функцию pipe ( | ) с параметром CALL: Label оболочки CMD окна. У меня есть очень маленький пример (ниже): call-test .cmd и пример вывода.
Суть проблемы заключалась / заключается в передаче вывода сценария CMD другой программе, например утилита tee или команда find . Например:
@call :Label-02 param | tee call-test.log
Которая запустит текущий командный файл с метки Label-02 и направит вывод на tee . К сожалению, использование вертикальной черты (|) в строке с опцией «call: label» дает ошибку:
Invalid attempt to call batch label outside of batch script.
В то время как « call example.cmd | tee example.log» работает нормально.
Другое перенаправление ввода-вывода > работает нормально. Это только один случай, когда " call: label pipe (|) " не работает. Для меня это просто похоже на ошибку Windows.
Есть ли у кого-нибудь обходной путь и / или знает объяснение?
Спасибо,
Invalid attempt to call batch label outside of batch script.
В то время как « call example.cmd | tee example.log» работает нормально.
Другое перенаправление ввода-вывода > работает нормально. Это только один случай, когда " call: label pipe (|) " не работает. Для меня это просто похоже на ошибку Windows.
Есть ли у кого-нибудь обходной путь и / или знает объяснение?
Спасибо,
Invalid attempt to call batch label outside of batch script.
В то время как « call example.cmd | tee example.log» работает нормально.
Другое перенаправление ввода-вывода > работает нормально. Это только один случай, когда " call: label pipe (|) " не работает. Для меня это просто похоже на ошибку Windows.
Есть ли у кого-нибудь обходной путь и / или знает объяснение?
Спасибо, Будет ли
call-test вывод
c: \> call-test
[Начало]
метка 03 :: p1
Недопустимая попытка вызвать метку пакета вне сценария пакета.
Недопустимая попытка вызвать метку пакета вне сценария пакета.
[сделано]
Нажмите любую клавишу для продолжения . . .
вызов-тест
@echo off
@rem call-test.cmd
@rem _________________________________________________
@rem Test: опция вызова метки для файлов .cmd.
@rem
@echo ^ [начало]
@call: Label-03 p1
@call: Этикетка-02 секунда | найти " "
@call: Этикетка-02 секунда | тройник call-test.log
@goto Готово
@rem _________________________________________________
: Этикетка-01
@echo ^ метка 01 ::% 1
@goto Выход
@rem _________________________________________________
: Этикетка-02
@echo ^ метка 02 ::% 1
@goto Выход
@rem _________________________________________________
: Этикетка-03
@echo ^ метка 03 ::% 1
@goto Выход
@rem _________________________________________________
:Готово
@echo ^ [готово]
@Пауза
@rem _________________________________________________
:Выход
@exit / b