2013-10-19 154 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

相关问题