关于用c#通过命令行方式调用chkdsk的问题

问题描述

privatevoidchkdsk_Click(objectsender,EventArgse){try{Threadt=newThread(newParameterizedThreadStart(this.chkDsk));t.Start(diskList.Text+yesNo.Text);}catch(Exceptionex){msg.Text+=ex.ToString()+"rn";}}publicvoidchkDsk(objectdata1){stringcmdtext1="chkdsk"+data1.ToString().Substring(0,2)+"/x";charcmdtext2;stringyesno=data1.ToString().Substring(3,1);if(yesno=="是"){cmdtext2='y';}else{cmdtext2='n';}Processp=newProcess();p.StartInfo.FileName="cmd.exe";p.StartInfo.UseShellExecute=false;//关闭Shell的使用p.StartInfo.RedirectStandardInput=true;//重定向标准输入p.StartInfo.RedirectStandardOutput=true;//重定向标准输出p.StartInfo.RedirectStandardError=true;//重定向错误输出p.StartInfo.CreateNoWindow=true;p.Start();p.StandardInput.WriteLine(cmdtext1);p.StandardInput.WriteLine(cmdtext2);p.StandardInput.WriteLine("exit");StreamReaderSR=p.StandardOutput;while(!SR.EndOfStream){msg.Text+=SR.ReadLine()+"rn";}}diskList.Text是盘符yesNo.Text是是否问题是现在《是否计划在下一次系统重新启动时检查此卷?(Y/N)》输入n或者y之后,无法继续正常的输入输出了造成无法关闭cmd进程,但是n和y是有效果的,只是无法继续输入输出,我感觉是程序被定位到了chkdsk进程而非cmd,我通过任务管理器强制关闭cmd进程之后,才会正常输出本来应该输出的一行我的代码上传到了百度云,希望大神帮我看看,非常感谢http://pan.baidu.com/s/1sjqI6sd

解决方案

时间: 2024-10-25 10:28:40

关于用c#通过命令行方式调用chkdsk的问题的相关文章

命令行方式调用winrar对文件夹进行zip压缩示例代码

调用winRAR进行压缩 [csharp] view plain copy   using System;   using System.Collections.Generic;   using System.Linq;   using System.Text;   using System.Threading.Tasks;      namespace testZIPEXE   {       class Program       {           static void Main(s

用C#设计一个命令行方式的文件分割器

命令行|设计 共享软件中有很多界面美观的文件分割程序,将一个大文件分割成几个较小的文件,分别保存,需要的时候再合并成原来的文件,常常是必备的工具. 本文用微软的visual studio .net开发环境的C#语言也来设计一个文件分割器,并且以DOS命令行方式运行,就象使用copy命令一样简单.从中也可以了解文件分割的原理以及.net框架对文件的读写操作方式. 新建一个visual c#项目,选择"控制台应用程序",项目名称设置为filesplitcon,系统自动产生了class1.c

在非SQL客户端使用命令行方式定期连接SQL Server服务器

在非SQL客户端使用命令行方式定期连接SQL Server 服务器并模拟用户查询操作,同时输出信息内容 一个很长的标题,实现的功能就是尽量使用非人力的方式模拟人去做一件事情,为了便于记录,将他们输出成文件方便查阅. 图形界面方式,使用微软自己的ConnMaker.exe,或者Microsoft 数据连接(系统自带,建立一个后缀为.udl的文件即可体验),进行可视化的操作. Figure 1使用ConnMaker.exe创建的可视化连接查询实例 不过这次用户的需求是因为他们在尝试进行连接到SQL服

Windows Server 2008如何采用命令行方式实现磁盘管理

Windows Server 2008的一个特性在于,操作系统的许多方面的功能都可以通过命令行方式进行管理.如果我们在一台带GUI界面的电脑上正好需要定义一个RAID阵列,通常是比较容易实现,在磁盘管理控制台程序重点击几下鼠标即可完成安装操作. 如果需要对多台机器进行同样的RAID操作,采用脚本的方式效率会更高一些.同样,如果我们正在进行Server Core的安装,那就没有其它选择,只能从命令提示符下管理自己的磁盘子系统.本文中,将介绍如何采用命令行方式实现上面提到的功能. 1.http://

《Linux指令从入门到精通》——4.3 Linux下全屏幕文本编辑器的命令行方式

4.3 Linux下全屏幕文本编辑器的命令行方式 4.3.1 emacs:文本编辑指令 初步了解emacs编辑器的基础功能,学会使用emacs指令来进行文本编辑.电邮收发等各项功能. emacs [-可选参数] [文件名] Emacs (Editor MACroS编辑器宏) 是一个功能强大的文本编辑器.该指令不仅可以用来编辑文本文件,还可以收发电邮.编辑远程文档.通过Telnet登录远程主机.登录IRC.查看日历.支持多种编程语言(如C/C++,Perl,Python,Lisp等).管理日程和个

使用批处理文件命令行方式快速启动和停止IIS、SqlServer

原文:使用批处理文件命令行方式快速启动和停止IIS.SqlServer        虽然现在内存便宜了,但是自己还是嫌自己的512M内存太小,没办法,后台运行的东西太多了,有很多都是有用的没法关闭的.IIS和SQLServer都是吃内存大户,所以现在只在使用到它们的时候才打开,不用的时候都随时关闭,发现每次使用管理控制台来启动和关闭IIS和SQLServer很麻烦,也很慢.现在可以写两个批处理文件使用"命令行"的方式来启动和关闭IIS.SQLServer.         一个批处理

《精通Spring MVC 4》——1.4 命令行方式简介

1.4 命令行方式简介 对于钟情于控制台的读者来说,可以采用"curl http://start.Spring.io"的方式.采用这种方式的话,将会需要一些指令,帮助我们组织curl请求. 例如,要生成与之前相同的项目,那么可以输入如下的命令: $ curl http://start.Spring.io/starter.tgz \ -d name=masterSpringMvc \ -d dependencies=web \ -d language=java \ -d JavaVers

用命令行方式定制Exchange邮件配额信息

Exchange Server 2007的管理员们可以使用命令行这种简单的方式来定制邮件配额警告以及报告传递电子邮件的尝试结果的通知的邮件."Cmdlets"的正确发音应该是"commandlests",它是一种使用了微软PowerShell技术,并以命令行管理的方式来工作的一种技术. 为了解决"报告传递电子邮件的尝试结果的通知"DSN5.2.2这个错误(这个错误是提示您"邮件箱已满"),您只需要使用这样一个简单的命令行就能完

通过命令行方式使用NUnit进行UT

命令行 极限编程(XP)越来越进入程序员的眼球,TDD(Test Drived Design)也越来越普及,UT(Unit Testing)是TDD的第一步,主要面向的是一线的开发人员,而不是项目经理.系统设计与分析人员甚至是测试人员,当然UT的一些方法也可以用于后续的测试,但从概念上来讲那已经不算UT了.UT是"开发者写的一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确".xUnit系列是专门用户UT的框架(工具),包含了对目标代码进行UT的类库.NUnit是xUnit