2012-12-27 202 views
-2

Okey,所以我希望我的C#程序執行兩個控制檯命令。C#執行控制檯命令

takeown /f "c:\windows\system32\Utilman.exe" 
icacls "c:\windows\system32\Utilman.exe" /grant administrators:F 

我的問題是,在路徑C#不能處理額外的「S(還試圖用沒有運氣轉義序列)如果你的意思是你有嵌入在命令行參數"問題

+0

好吧,你嘗試了什麼? –

+3

「我的問題是C#無法在路徑中處理額外的」 - 你是怎麼說的?你能解釋一下[你試過的是什麼](http://whathaveyoutried.com)併發布你的當前代碼,解釋你卡在哪裏? – Oded

回答

6

,你只需要轉義:

Process.Start("takeown", @"/f ""c:\windows\system32\Utilman.exe"""); 
Process.Start("icacls", 
       @"""c:\windows\system32\Utilman.exe"" /grant administrators:F"); 

我使用逐字字符串(那些以@開始),以避免逃跑的路徑\因爲我需要與其他點燃字符串做數常量。

+0

第二行是給我「程序無法找到」,所以我刪除了「icacls」的空間和它的工作完美。 –

+0

太好了,一定要讓接受的答案! – Mataniko

+0

@Mataniko - 哎呀...我的壞。答案已更新,已刪除空格。 – Oded