c# - 无法从 cmd 获取输出

标签 c# process cmd output stdout

我正在运行这个

        string path = string.Format(@"\\{0}\c$\Windows\CCM\Logs", computerName);

        Process process = Process.Start(new ProcessStartInfo()
        {
            FileName = "cmd.exe",
            Arguments = string.Format(@"net use {0} && dir {0}", path),
            UseShellExecute = false,
            RedirectStandardOutput = true,
            RedirectStandardError = true,
            CreateNoWindow = true
        });

        string result = process.StandardOutput.ReadToEnd() + " " + process.StandardError.ReadToEnd();
        process.WaitForExit();

        Console.WriteLine(result);

但是没有任何内容被写入控制台。我究竟做错了什么?我已经浏览了可能与此相关的所有其他 SO 线程并进行了大量谷歌搜索,但我无法让它工作。

最佳答案

cmd.exe需要使用/C选项,否则子进程不会退出。

/C Carries out the command specified by string and then terminates

(在您的命令提示符中键入 cmd/? 以获取更多信息)

关于c# - 无法从 cmd 获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22372485/

相关文章:

c# - 在 IQueryable 查询中减去 DateTimes

c# - 确定何时在 C# 中播放响亮的声音

process - CPU 调度 : Finding burst time

c# - 如何从 C# 获取进程窗口类名?

java - Java 进程中的 Sudo

cmd - 如何恢复wget镜像网站?

c# - 将字典与可能重复的键合并到另一个包含最大值的字典中

python - 如何在 Windows cmd 上打印不支持的 unicode 字符,例如 "?"而不是引发异常?

使用参数执行 CMD.exe 的 PowerShell SCript

c# - 适用于带有 C# 绑定(bind)的 Windows 的矢量图形库