c#命令提示输出
本文关键字:输出 提示 命令 | 更新日期: 2023-09-27 17:52:57
我需要在我的项目中使用命令提示符。一切正常,但输出不是我想要的。如果我这样做:
ProcessStartInfo info = new ProcessStartInfo("cmd","/c dir c:''test");
info.RedirectStandardOutput = true;
info.RedirectStandardInput = true;
info.CreateNoWindow = true;
info.UseShellExecute = false;
Process p = new Process();
p.StartInfo = info;
p.Start();
string iii = p.StandardOutput.ReadToEnd();
textBox1.Text = iii;
结果是ok。正合我意。但我还需要发送更多的命令。所以我这样做:
ProcessStartInfo info = new ProcessStartInfo("cmd");
info.RedirectStandardOutput = true;
info.RedirectStandardInput = true;
info.CreateNoWindow = true;
info.UseShellExecute = false;
Process p = new Process();
p.StartInfo = info;
p.Start();
StreamWriter write = p.StandardInput;
write.WriteLine("dir c:''test");
write.Close();
string iii = p.StandardOutput.ReadToEnd();
textBox1.Text = iii;
但结果不像以前。它在cmd中给出了路径和所有东西,这是我不想要的。我只需要命令提示符的结果,其他什么都不需要。希望有人能帮忙。
您已经展示了您想要做的事情的实现,并提出了"为什么我的实现没有达到我的期望"的问题。如果我们能退后一步,让我们知道"我需要的是……"(WINI)然后我们可以(我认为)给你一个真正的答案。
例如:如果我把WINI作为"我需要一个目录列表'c:'test'",那么我会说创建一个真正简单的小控制台应用程序,为您提供您想要的原始数据。剩下的就是格式化,考虑关注点分离。
你就有了一个探测应用程序,它可以以最适合你的格式给你任何你喜欢的东西。然后使用解析器解析输出。
你的控制台应用程序可以这样做:
public class Hyperthetical
{
public void MyDemoCall(string root)
{
Console.WriteLine("-- start --");
GiveMeADirectoryListingAsIWantIt(root)
Console.WriteLine("-- end --");
}
public void GiveMeADirectoryListingAsIWantIt(string directory)
{
Console.WriteLine("Folder '{0}':", directory);
foreach (var filePath in System.IO.Directory.GetFiles(directory))
{
var fileInfo = new FileInfo(filePath);
Console.WriteLine("File: '{0}', {1}", fileInfo.Name, fileInfo.Length);
}
foreach (var subFolders in System.IO.Directory.GetDirectories(directory))
{
GiveMeADirectoryListingAsIWantIt(subFolders);
}
}
}
不是直接的答案,但可能只是真正的答案。