2013-10-19 152 views
0

我試圖在自己的程序中使用自動化的Android S-OFF方法,但似乎無法在同一個窗口中看到兩個命令。例如,我現在的代碼是:使用命令提示符和ADB在一行上執行多個命令

var process = Process.Start("CMD.exe", "/k adb shell chmod 744 /data/local/tmp/soffbin3"); 
process.WaitForExit(); 

但是,當我運行它時,窗口中什麼都沒有發生。我想有第二條命令遵循的第一個這樣的:

var process = Process.Start("CMD.exe", "/k adb shell & chmod 744 /data/local/tmp/soffbin3"); 
process.WaitForExit(); 

然而,&列入使得它如此的第二個命令不走,直到第一個命令完成,而且由於"adb shell"是不是真的一個完成的命令,它不會執行第二個命令。

也有人向我建議我用/c代替/k,這也可以工作,但打開該命令後窗口幾乎立即關閉,而且我無法確認實際發生的任何事情。

我試過一些變化,試圖讓它工作,但沒有任何工作到目前爲止。答案是簡單的,我錯過了嗎?我真的很希望它是。

在此先感謝您的幫助!

回答

0

您可以使用該命令的逐字轉義來避免您的Literal命令出現問題。 @是逐字轉義,因此雙引號後面的信息作爲文字命令運行。

var process = Process.Start("CMD.exe", @"/k adb shell & chmod 744 /data/local/tmp/soffbin3"); 
    process.WaitForExit(); 
1

此命令的工作對我來說

var process = Process.Start("CMD.exe", @"/k adb pull data/data/com.sales.recorder/databases/SalesRecorder c:\adb"); 
process.WaitForExit(); 
+1

請格式化代碼代碼。解釋你如何修改字符串以使其起作用,它不是很明顯 – DrKoch

相關問題