2009-11-17 10 views
0

J'ai besoin du programme pour donner la sortie du script batch, et au moment où il est seulement l'impressionNe pas donner une sortie correcte de l'écriture lot externe C#

System.IO.StreamReader 

et il devrait être l'impression quel que soit le script batch dit

Ceci est seulement la partie qui doit faire avec le démarrage d'un nouveau processus, les variables comme le chemin du fichier sont déclarés et le script exécute lui-même, mais ne montre pas le bon rendement

Process Uninstaller = new Process(); 

Uninstaller.StartInfo.FileName = Path.Combine(uninstalldirectory, BatchProcessFileName); 
Uninstaller.StartInfo.UseShellExecute = false; 
Uninstaller.StartInfo.CreateNoWindow = true; 
Uninstaller.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
Uninstaller.StartInfo.RedirectStandardOutput = true; 
Uninstaller.Start(); 
StreamReader ReadUninstallerOutput = Uninstaller.StandardOutput; 
Uninstaller.Close(); 
string OutputEnd = ReadUninstallerOutput.ReadToEnd(); 
Console.WriteLine(ReadUninstallerOutput); 

ReadUninstallerOutput.Close(); 
Console.WriteLine("Uninstallation Successful"); 

Répondre

1

Remplacer

Console.WriteLine(ReadUninstallerOutput); 

avec

Console.WriteLine(OutputEnd); 
+0

Vous avez tous les deux raison, merci –

2

C'est parce que vous avez la console écrire ReadUninstallerOutput, qui est un objet, pas la chaîne qui a les données que vous voulez, et tout ce que fait la méthode appelle la méthode ToString sur ce type. A en juger par votre code, vous voulez remplacer:

Console.WriteLine(ReadUninstallerOutput); 

avec:

Console.WriteLine(OutputEnd); 
+0

deux vous l'avez droit, merci –

+0

+1 pour que les points soient partagés équitablement ;-) – Gonzalo