C# 从.NET应用程序调用命令行
我想从一个c#应用程序调用一个命令行,从它开始调用一个应用程序并从中检索stat 我这样做了,但缺少了一些东西:C# 从.NET应用程序调用命令行,c#,.net,command-line,C#,.net,Command Line,我想从一个c#应用程序调用一个命令行,从它开始调用一个应用程序并从中检索stat 我这样做了,但缺少了一些东西: ProcessStartInfo psf = new ProcessStartInfo("cmd.exe", "/C time"); psf.WindowStyle = ProcessWindowStyle.Hidden; psf.RedirectStandardOutput = true; psf.UseShellExecute = false; psf.CreateNoWindo
ProcessStartInfo psf = new ProcessStartInfo("cmd.exe", "/C time");
psf.WindowStyle = ProcessWindowStyle.Hidden;
psf.RedirectStandardOutput = true;
psf.UseShellExecute = false;
psf.CreateNoWindow = true;
Process p = Process.Start(psf);
StreamReader sr = p.StandardOutput;
p.WaitForExit();
有什么问题吗?尝试传递/c时间/t而不是/c时间。尝试传递/c时间/t而不是/c时间。要获取系统时间,我建议您使用以下结构:
string time = DateTime.Now.ToString("hh:mm:ss.fff");
Console.WriteLine(time);
要获得系统时间,我建议您使用以下结构:
string time = DateTime.Now.ToString("hh:mm:ss.fff");
Console.WriteLine(time);
cmd/c Time
需要用户输入。除非您提供一些输入,否则它不会关闭。在您的情况下,您正在隐藏命令窗口。这使它看起来像一个输入在隐藏窗口中挂起。你想让代码做什么?我不想更改时间,只从这个应用程序获取时间。你不能使用DateTime。现在
?在这种情况下,使用cmd/c time/t
,正如@Lukas所说。cmd/c time
需要用户输入。除非您提供一些输入,否则它不会关闭。在您的情况下,您正在隐藏命令窗口。这使它看起来像一个输入在隐藏窗口中挂起。你想让代码做什么?我不想更改时间,只想从这个应用程序中获取它。你不能使用DateTime。现在?在这种情况下,使用@Lukas说过的cmd/c time/t
。是的,我得到了数据。你做了什么?我怎样才能获得毫秒数呢?正如上面所述,如果没有/t,命令会要求输入。但我认为“time”命令不支持毫秒。这一点以前也说过,但是为什么不简单地使用DateTime。现在呢?我需要检查这个选项和DateTime对象之间的差异,以及其他东西。谢谢使用“echo%time%”而不是“/c time/t”怎么样?你能改用它吗?是的,试试新的ProcessStartInfo(“cmd.exe”,“/C echo%time%”)-这会产生类似“10:32:41,18”的输出,这几乎就是你所需要的。是的,我得到了数据。你做了什么?我怎样才能获得毫秒数呢?正如上面所述,如果没有/t,命令会要求输入。但我认为“time”命令不支持毫秒。这一点以前也说过,但是为什么不简单地使用DateTime。现在呢?我需要检查这个选项和DateTime对象之间的差异,以及其他东西。谢谢使用“echo%time%”而不是“/c time/t”怎么样?可以改用它吗?是的,尝试使用新的ProcessStartInfo(“cmd.exe”,“/C echo%time%”)-这会产生类似“10:32:41,18”的输出,这几乎就是您所需要的。我需要使用shell和time,而不是datewtime对象。我需要使用shell和time,而不是datewtime对象