109 votes

L'opérateur '<' est réservé pour une utilisation future.

J'utilise PowerShell et j'essaie d'exécuter la commande suivante :

.\test_cfdp.exe < test.full | tee test.log

test.full est un script qui imite les entrées de la ligne de commande à test_cfdp.exe. Cependant, j'obtiens l'erreur suivante :

The '<' operator is reserved for future use.

Existe-t-il un autre moyen (c'est-à-dire un cmdlet) que je peux utiliser pour que cette commande fonctionne dans PowerShell ?

102voto

Ruben Bartelink Points 23945

Ce site n'était pas supporté dans PowerShell v1 (et à partir de la v5, ce n'est toujours pas le cas...)

Voici un exemple de solution de contournement :

Get-Content test.full | .\test_cfdp.exe | tee test.log

65voto

Tim Grotheer Points 28

Essayez aussi :

cmd /c '.\test_cfdp.exe < test.full | tee test.log'

8voto

Szczerski Points 49

Dans la version 7 de PowerShell, vous devez toujours utiliser Get-Content pour obtenir le contenu d'un élément à l'emplacement spécifié. Par exemple, si vous voulez charger un fichier dans un script Python et écrire le résultat dans un fichier. Utilisez cette construction :

PS > Get-Content input.txt | python .\skript.py > output.txt

Ou avec un affichage et un enregistrement dans un fichier :

PS > Get-Content input.txt | python .\skript.py | tee output.txt

Ou passez à cmd pour utiliser l'opérateur '<' :

C:\>python .\skript.py < input.txt > output.txt

4voto

Miral Points 57

Je suis passé au shell linux et cela fonctionne.

1voto

Edifice Points 189

Si vous voulez exécuter cette commande plusieurs fois, vous pouvez simplement créer un fichier *.bat avec la syntaxe originale. C'est une autre solution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X