使用命令提示符和ADB在一行上执行多个命令

时间:2013-10-19 17:40:34

标签: c# android .net adb visual-studio-2013

我正在尝试在我的程序中使用自动Android S-OFF方法,但我似乎无法在同一窗口中获得两个命令。例如,我现在的代码是:

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"实际上不是一个完成的命令,所以它不会第二个命令。

我还建议我用/k取代/c,这可能也有效,但是在打开该命令后窗口几乎立即关闭,我无法确认事情真的发生了。

我尝试了一些变种试图让它发挥作用,但到目前为止还没有任何工作。答案很简单,我错过了吗?我真的希望它是。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这个命令对我有用

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

答案 1 :(得分:0)

您可以使用Verbatim转义命令来避免Literal命令出现问题。 @是逐字转义的,因此Double Quotes中跟随它的信息作为文字命令运行。

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