Shell命令在VB中

时间:2012-01-09 21:54:58

标签: vb.net visual-studio visual-studio-2010

出于某种原因,当我尝试在VB中的shell命令中使用它们时,似乎&符号不能正常工作。当我尝试使用&符号在同一行上将两个命令链接在一起时,我收到错误:“filenotfoundexception未找到未处理的文件”

我试图运行的命令是:

 Shell("cd " & TextBox2.Text.ToString & " & adb -s " & TextBox15.Text.ToString & " shell monkey -p " & TextBox1.Text.ToString & " -v 1", AppWinStyle.Hide) 

我尝试将其分解为更简单的形式,但我仍然收到错误:

 Shell("cd C:\ & adb shell monkey -p com.android.system -v 1", AppWinStyle.Hide)

如果我摆脱&符号并使用:

 shell(adb shell monkey -p com.android.system -v 1", AppWinStyle.Hide)

一切正常。 vers shell命令中没有&符号吗?


*我的编辑

其实我还是遇到了麻烦。所以我拥有的是:

    psi.WorkingDirectory = TextBox2.Text.ToString
    psi.FileName = "adb"
    psi.WindowStyle = ProcessWindowStyle.Hidden

然后我有一些代码,然后我分配一个参数并执行参数:

    psi.Arguments = "-s " & TextBox15.Text.ToString & " shell monkey -p " & TextBox1.Text.ToString & " -v  1"
    Process.Start(psi)

然后我有一些代码,然后我尝试使用不同的参数再次运行该过程:

    psi.Arguments = "-s " & TextBox15.Text.ToString & " shell input keyevent 3"
    Process.Start(psi)

第一个似乎有用,所有后续的都没有。有什么理由不起作用吗?是否有流程刷新或我遗漏的东西?

3 个答案:

答案 0 :(得分:5)

删除了我的其他答案,找到了一种更简单的方法。

这就是你想要的......

Shell("cmd.exe /c cd C:\ & adb shell monkey -p com.android.system -v 1", AppWinStyle.Hide)

将其插入原始代码......

Shell("cmd.exe /c cd " & TextBox2.Text.ToString & " & adb -s " & TextBox15.Text.ToString & " shell monkey -p " & TextBox1.Text.ToString & " -v 1", AppWinStyle.Hide) 

我测试了第一个例子,它似乎有效。

答案 1 :(得分:3)

您是否考虑过使用Process对象启动ADB并设置了CommandLine选项

Dim psi As New ProcessStartInfo

psi.WorkingDirectory = "c:\"
psi.Arguments = "shell monkey -p com.android.system -v 1"
psi.FileName = "ADB"
psi.WindowStyle = ProcessWindowStyle.Hidden
return Process.Start(psi)

如果您的ADB程序仅允许单个实例运行,则可能需要添加以下内容

Dim ps As Process = Process.Start(psi)
ps.WaitForExit()

psi.Arguments = 'new arguments
Process.Start(psi)

答案 2 :(得分:2)

Shell命令需要文件名,因此命令行扩展不起作用。

有几种选择:

1)使用process.start启动cmd.exe并传递参数(我没有对此进行测试,因此我不确定它是否可行。

2)在.cmd或.bat文件中创建命令,然后shell文件(这似乎是最简单的方法)。