Question Comment capturer la sortie du shell dans un fichier texte?


En linux je peux taper dans echo "hello" >& text.output et obtenir la sortie de texte dans un fichier.

Comment puis-je obtenir ce type de sortie dans Windows 8?

Y a-t-il un moyen de détecter les erreurs à partir des sorties?

Ma motivation est d'essayer de consigner la sortie de tracert et étudier la différence entre Windows 8 et Windows 7.


4
2017-11-07 18:28


origine


Quel est 72162? - jsalonen
C'était une faute de frappe ... - Mikhail
Duplicata possible de superuser.com/questions/99066/ - Der Hochstapler


Réponses:


De la même manière que sous Linux:

echo "Hello" >text.output

Erreurs généralement imprimées à stderr flux (c'est # 2). Vous pouvez capturer stderr courant:

del 1.txt 2>text.output

Si le fichier 1.txt n'existe pas, text.output contiendra Could not find 1.txt.


Vous pouvez rediriger stdout à stderr:

echo "Hello" 2>&1

Ou stderr à stdout:

echo "Hello" 1>&2

P.S. Je ne suis pas sûr que votre commande fonctionne sous Linux. En tous cas echo "hello" >& text.output génère une erreur de syntaxe: >& was unexpected at this time.


6
2017-11-07 18:32



Cela fonctionne sur Gentoo et SLES. Ce n'est peut-être pas très strict POSIX. - Mikhail
Fonction peu connue: l'opérateur de redirection peut aller n'importe où sur la ligne. - Der Hochstapler
@OliverSalzburg Ne le sait pas. Merci! - Alexey Ivanov


Le shell dans Windows est maintenant très similaire à BASH sous Linux. Donc, vous pouvez juste faire

echo "Hello" > text.txt

Ou, exécutez votre programme et laissez la sortie du système écrire à text.txt:

run_program > text.txt

Si vous devez suivre l'erreur, utilisez ce qui suit:

run_program 2> error.txt

Plus d'informations et d'exemples peuvent être trouvés ici. Redirection d'E / S


3
2017-11-07 20:14