首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C#中的CHKDSK工具并将文本显示在CMD窗口中?

如何使用C#中的CHKDSK工具并将文本显示在CMD窗口中?
EN

Stack Overflow用户
提问于 2019-07-15 19:51:42
回答 1查看 151关注 0票数 1

我正在尝试使用C:\Windows\System32\chkdsk.exe中的C# Winforms应用程序中的chkdsk.exe系统工具。我想使用System.Diagnostics.Process类。我使用ProcessStartInfo设置工具的文件名,然后使用args属性设置参数。

因此,我尝试在ProcessStartInfo中使用System.Diagnostics.Process。但是,当用户没有权限时出现错误时,chkdsk窗口会立即关闭。所以我在任务栏中看到了一个窗口,然后它就关闭了,什么也没说。我已经尝试过UseShellExecute=truefalse了。此外,我曾尝试重定向输出流,但在Windows应用程序中,如果失败,我必须直接显示输出流,而不是显示错误或CHKDSK信息的CMD窗口。

代码语言:javascript
复制
 using (Process CHKDSK = new Process())
 {
     CHKDSK.StartInfo.WorkingDirectory = @"H:\";
     CHKDSK.StartInfo.FileName = "C:\\Windows\\System32\\chkdsk.exe";
     CHKDSK.StartInfo.Arguments = "/r /f C:";

     CHKDSK.StartInfo.UseShellExecute = true;
     //CHKDSK.StartInfo.UseShellExecute = false;       

     CHKDSK.Start();                
 }

我希望CHKDSK文本显示在我相信的CMD窗口中。因此,如果用户没有权限,窗口应该告诉用户他们没有权限,使用CMD窗口并键入"call chkdsk /r /f C:",我不想使用start an CMD实例并将chkdsk作为参数传递。我只想使用CHKDSK.exe工具

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-15 19:57:01

要做需要做的事情,您必须重定向正在创建的进程的标准输出和标准错误流,您可以重定向到控制台,也可以重定向到您想要的任何其他内容,例如,您可以在用户界面上的多行文本框中显示来自输出和错误流的文本,或者将其写入日志文件。

有关这方面的一些想法,请参阅此处:https://stackoverflow.com/a/285841/559144

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57039153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档