c# - 在 C# 中执行具有复杂输出的 cmd 命令
问题描述
我经常发现自己在 pc 上使用不同的命令来检查系统中的内容,我想基本上创建一个小的独立 exe,它将执行我所有的常用命令并给我每个命令的输出,而无需我手动输入它们......我要注意的是,我知道这不是 google 上关于使用 c# 执行 cmd 命令的第一个问题,但不符合我的命令要求,例如,它们中的许多执行诸如复制或移动或制作之类的命令,而不是它们有一个复杂的输出,我想执行例如“sfc /scannow”命令,它输出一个进度条,它测量当然的进度和一个最终输出,问题是我尝试了很多方法来尝试,但所有失败的,shell 执行在打开另一个 cmd 窗口甚至需要提升时效果很好,但是一旦进度条结束并显示最终输出,它就会崩溃(因此我看不到最终输出),shell 执行关闭(执行通过主窗口)它要么根本不显示进度条而只显示最终输出,要么什么都不显示,或者它确实显示了进度条,但每次增加它都是一个新行,显然看起来不正确...一条新线,显然看起来不正确...一条新线,显然看起来不正确...
这是我的代码:
public static void ExecuteCommand(string command) {
Process prc = new Process();
ProcessStartInfo info = new ProcessStartInfo
{
Verb = "runas",
FileName = "cmd.exe",
UseShellExecute = true,
Arguments = "/c" + command
};
prc.StartInfo = info;
prc.Start();
prc.WaitForExit();
prc.Close();
}
如果有人能想到解决办法,请告诉我,我已经坚持了大约 3 天......
解决方案
原来罪魁祸首是“/c”,如果我把它改成“/K”,窗户会一直打开,直到我像我想要的那样手动关闭它。
推荐阅读
- cassandra - 当新的时间戳值等于前一个时间戳值时,DataStax/Cassandra 使用时间戳的行为是不可预测的
- selenium - 两因素身份验证正在使用 .now 代码,但在我更改了我的 chromedriver 版本后,它不起作用
- jasmine - 失败:无法读取未定义的属性“saveFullPageScreen”
- intellij-idea - 在 IntelliJ IDEA 中运行“应用程序”时出错:-679216128
- javascript - 如何在 Electron Application 中导入自签名证书
- ruby-on-rails - 尝试加载 form_tag 和控制器操作时设计 ActionController::UrlGenerationError
- visual-studio - 在 Visual Studio 中强制安装 ReSharper
- r - 如何找到最长的连续数及其位置?
- facebook - Facebook 客户聊天显示空 iframe
- dart - pub:使用冒号语法从依赖项运行脚本失败