c#执行命令行并返回字符串

Tom*_*len 2 c# command-line command-prompt

我不能让它返回任何东西,我期待当前目录中的文件列表,但它什么也没有返回.

class Program
{
    static void Main(string[] args)
    {
        PublishProject();
        Console.ReadLine();
    }

    public static void PublishProject()
    {
        //Create process
        var pProcess = new System.Diagnostics.Process
        {
            StartInfo =
                {
                    FileName = "cmd.exe",
                    Arguments = "dir",
                    UseShellExecute = false,
                    RedirectStandardOutput = true,
                    WorkingDirectory = "C:\\"
                }
        };
        pProcess.Start();
        Console.Write(pProcess.StandardOutput.ReadToEnd());
        pProcess.Close();

        Console.WriteLine("done");
    }
}
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 8

您可以通过更改Arguments为:

Arguments = "/C dir",
Run Code Online (Sandbox Code Playgroud)

/ C标志 "执行字符串指定的命令,然后停止.".如果没有这个,cmd仍然在执行,这就是为什么你没有立即输出.

话虽这么说,对于这个例子,我个人会使用Directory.GetFilesDirectory.EnumerateFiles而不是进程.