2011-06-17 5 views
-7

J'ai créé une application console classiquePourquoi l'application de console C# ne prend pas en charge la redirection vers un fichier?

static void Main(string[] args) 
    { 

Il fonctionne, sauf lorsque je tente de rediriger la sortie vers un fichier

myconsoleapp.exe arg1 arg2 arg3 > output.txt 

Est-ce que la console C# prend en charge la redirection?

+7

Qu'est-ce qui ne fonctionne pas? – Oded

+3

S'il vous plaît, montrez-nous le code complet. Qu'écrivez-vous dans stdout? – Dyppl

+1

Comment essayez-vous d'écrire? Console.WriteLine va juste à la sortie standard, et la redirection fonctionnera. –

Répondre

1

Si vous construisez la classe suivante:

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine("Hello World! - {0}", args[0]); 
    } 
} 

et d'exécuter

app.exe test > test.txt 

vous obtenez le fichier test.txt avec le contenu

Hello World! - test 

Si votre code ne sortie différent écrire s'il vous plaît fournir vos méthodes d'écriture à la sortie.

0

Sans plus d'informations, il est difficile de comprendre le problème. Une pensée que j'ai eu était peut-être que vous utilisez System.Diagnostics.Debug.WriteLine pour écrire dans la console de débogage. Dans ce cas, vous ne pourrez pas rediriger la sortie de la même manière, du moins pas sans plus de travail.

1

Peut-être que vos messages sont envoyés à STDERR, pas à STDOUT. Dans ce cas, vous devez rediriger différemment. A partir de la direction de Microsoft (http://support.microsoft.com/kb/110930):

Vous pouvez imprimer les erreurs et sortie standard à un seul fichier en utilisant le commande « & 1 » pour rediriger la sortie pour STDERR à STDOUT, puis envoyer la sortie de STDOUT dans un fichier:

dir file.xxx 1> output.msg 2>&1

Ou, vous pouvez rediriger la sortie vers un lieu, et les erreurs à l'autre.

dir file.xxx > output.msg 2> output.err

Questions connexes