【问题标题】:how to Add multiple cmd shell command lines vb.net如何添加多个 cmd shell 命令行 vb.net
【发布时间】:2017-10-10 10:43:33
【问题描述】:

我想在运行第一个命令后通过 shell 运行几个命令行

我使用了下面的命令,但是它不起作用

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

比如我在cmd中执行如下命令

adb 外壳

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

如何运行 vb.net?

编辑 ---------------------------------------------- --------

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

我们通过下面的命令使用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"))

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

【问题讨论】:

  • 创建一个批处理文件并运行它。
  • 我不想创建 .bat 文件。我想将它包含在软件本身中。还有,在bat中,当我们输入命令“adb shell”时,“su”并没有被执行

标签: vb.net shell adb


【解决方案1】:

您似乎在执行其他命令inside adb,在这种情况下,您当前正在执行的操作将不起作用。将命令与与符号 &amp; 组合将单独执行每个命令,而不是在先前打开的进程中。

要执行您想要的操作,您必须为 adb 进程,而不是 CMD。

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

未经测试,但这样的东西应该可以工作:

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")

【讨论】:

  • 谢谢 但是执行了adb shell后,并没有执行下一段代码
  • @ILYA20 : 其他部分是真正的命令,还是只是您想发送给adb shell 的内容?
  • 我觉得你的命令没问题 即使我创建了一个 .bat 文件并将命令放在这个文件中 但是它在 adb shell 之后不执行命令,它只停留在 adb shell 这是一个adb.exe 属性。
  • @ILYA20 :好吧,如果是这样的话,那么你做错了。 &amp; 用于执行多个 separate 命令。如果您想将它们传递给adb,您必须重定向输入或将它们作为参数传递。
  • @ILYA20 :更新了我的答案。
猜你喜欢
  • 2016-06-17
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多