Eh bien, la commande exit
n'a pas de sortie, donc il n'y a rien à transmettre dans le canal, donc vous obtenez un élément de pipeline vide. Donc, bien qu'il n'y ait rien à canaliser dans l'autre commande, la question est de savoir si elle devrait effectivement être exécutée.
De même, les interpréteurs shell intégrés à partir de cmd, tels que exit, dir, etc. peuvent fonctionner différemment dans Powershell. Les alias sont juste là pour vous aider à vous habituer.
Et la réparation est probablement facile. Parce qu'il n'y a rien à transmettre dans le pipeline, votre déclaration n'a aucune signification réelle. Vous voulez probablement lancer
sqlplus username/[email protected] @test.sql
exit
ETA: Comme votre commentaire indique un problème tout à fait différent. Vous avez copié la ligne de commande à partir de this answer incorrect. Si vous voulez envoyer le texte "exit" à la commande plus tard dans le pipeline, vous devrez le sortir d'une manière ou d'une autre. Cela peut être fait à la fois dans cmd et Powershell avec echo
. Donc, vous ne devriez pas laisser le echo
ici:
echo
exit | sqlplus username/[email protected] @test.sql
Sinon, vous pouvez envoyer "exit" directement sous forme de chaîne dans le pipeline:
"exit" | sqlplus username/[email protected] @test.sql
Non, ce que je veux est correcte. Voir ce post: http://stackoverflow.com/questions/118233/run-oracle-sql-script-and-exit-from-sqlplus-exe-via-command-prompt –
Fondamentalement, lorsque sqlplus est terminé, il se penche sur la norme entrée et trouve la commande de sortie là et sait sortir. C'est de loin la façon la plus simple de gérer la situation où le script ne se sort pas de lui-même. –
Euh, vous voulez probablement inclure l'écho avant de quitter ... – Joey