2013-04-18 136 views
0

我需要从C#运行提升进程,我需要它来重定向输入和输出。由于做这三件事是不可能的,我想我可能想出了一个解决方法,但它似乎并不奏效。重定向输出提升进程C#

 Process p = new Process(); 

     string command1 = "/s " + path + "\\script1.script"; 

     p.StartInfo = new ProcessStartInfo("diskpart",command1) 

     { 

      UseShellExecute = true, 

      CreateNoWindow = false, 

      Verb="runas" 

     }; 

     p.Start(); 

     p.WaitForExit(); 

工程。它用DiskPart调用list volume。 我想将其输出捕获到outfile1.txt。 当我从终端运行以下命令它的工作原理: diskpart /s script1.script>outfile1.txt 但是,当我修改command1"/s " + path + "\\script1.script>+path+"\\outfile1.txt"我从DiskPart得到一个错误,它无法打开或读取我的文件。 我在做什么错?

编辑

未找到解决方案,但我找到了解决方法。

我试图获得一个USB驱动器的驱动器号,然后我想设置为只读。但是,使用DriveInfo.Name我能够得到它。 (如果这被称为DriveInfo.driveLetter会更有帮助)然后我相应地写了我的DiskPart脚本。

回答

0

没有找到一个解决方案,但我找到了一个解决方法。

我试图获得一个USB驱动器的驱动器号,然后我想设置为只读。但是,使用DriveInfo.Name我能够得到它。 (如果这被称为DriveInfo.driveLetter会更有帮助)然后我相应地写了我的DiskPart脚本。

0

您的command1中可能有语法错误。你说你把它改为:

“/ S” +通道+ “\ script1.script> +通道+” \ outfile1.txt”

,我想你想要的是(缺一双引号):

“/ S” +通道+ “\ script1.script>” +通道+ “\ outfile1.txt”

如果不是的话,会发生什么,当你使用你的终端命令 - “diskpart/s script1.script> outfile1.txt” - 作为command1?你可能想看看这个计算器等话题在C#中运行命令:

Run Command Prompt Commands