如何添加多个cmd shell命令行vb.net

时间:2017-10-10 10:43:34

标签: vb.net shell adb

在运行第一个命令

后,我想通过shell运行一些命令行

我使用以下命令,但它不起作用

 Shell("cmd.exe /k" + "<adb shell 1> & <su 2> & <mv /data/local/tmp/build2.prop /system/build.prop 3>")

例如,我在cmd中执行以下命令

adb shell

mv /data/local/tmp/build2.prop /system/build.prop

如何运行vb.net?

edite ---------------------------------------------- -------

老实说,我们需要将文件传输到vb.net到Android设备/系统文件夹

我们通过以下命令使用androidlib,但它不起作用

Adb.ExecuteAdbCommand(Adb.FormAdbCommand("shell", "su", "-c", "mount -o remount, rw /system"))


Adb.ExecuteAdbCommand(Adb.FormAdbCommand("shell", "su", "-c", "cat /data/local/tmp/build2.prop > /system/build.prop"))

此命令执行只读文件系统错误

1 个答案:

答案 0 :(得分:0)

您在执行 adb内的其他命令之后的效果,在这种情况下,您当前正在执行的操作将无效。将命令与&号&组合将分别执行每个命令 ,而不是先前打开的进程。

为了 adb进程 ,而不是CMD,您需要redirect standard input做你想做的事。

重定向输入只是一种改变进程输入位置的方法。您可以将其重定向到您可以控制的其他流,而不是从键盘输入流(用户)获取它。

未经测试,但这样的事情应该有效:

Dim psi As New ProcessStartInfo("adb", "shell 1")
psi.UseShellExecute = False
psi.RedirectStandardInput = True

Dim p As Process = Process.Start(psi)
Dim InputStream As StreamWriter = psi.StandardInput

InputStream.WriteLine("su 2")
InputStream.WriteLine("mv /data/local/tmp/build2.prop /system/build.prop 3")