2013-04-18 69 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