Что ж, команда exit
не имеет выходных данных, поэтому нечего передавать по каналу, поэтому вы получаете пустой элемент конвейера. Так что, хотя нет ничего, что можно передать в другую команду, вопрос заключается в том, должна ли она вообще выполняться.
Кроме того, встроенные в cmd оболочки, такие как exit, dir и т. Д., Могут работать по-другому в Powershell. Псевдонимы просто для того, чтобы помочь привыкнуть.
И исправить это, вероятно, легко. Поскольку нет ничего, что можно было бы передать по конвейеру, ваше утверждение не имеет реального значения. Вы, вероятно, хотите запустить
sqlplus username/password@sid @test.sql
exit
ETA: Поскольку ваш комментарий указывает на совершенно другую проблему. Вы скопировали командную строку из этот ответ неправильно. Если вы хотите отправить текст"exit" команде позже в конвейере, вам необходимо каким-то образом вывести его. Это можно сделать как в cmd, так и в Powershell с помощью echo
. Таким образом, вы не должны пропустить echo
здесь:
echo
exit | sqlplus username/password@sid @test.sql
В качестве альтернативы вы можете отправить «выход» напрямую в виде строки по конвейеру:
"exit" | sqlplus username/password@sid @test.sql