bat执行shell脚本
1. 安卓设备中在执行bat脚本时abd shell自动输入密码并执行命令怎么写
可以使用 echo 命令和管道符 | 将密码输入到 adb shell 的命令中。假设你的密码为 mypassword,需要执行的命令为 mycommand,那么弯弯亏可以这样写:
echo mypassword | adb shell mycomman
在上面的命令中,echo mypassword 将密码输出到标准输出流,然后通过管道符 | 将标准输出流连接到 adb shell mycommand 命令的标准输入流中,这样就实现了自动输入密码并执行命令埋神的效闹谈果。
2. BAT脚本如何自动执行adb shell 以后的命令
普通情况,可以直接用 ”adb shell rm /data/tmp/xx.sh“ 之类的命令执行一条指令。
需要root权限情况,如果执行adb shell su的话,会进入控制台但是无法输入,用批处理的话也会卡在此处。
可以用输入重定向的方法来解决。
1.将所有需要执行的命令放到一个文本文档中,如cmd.txt
2.用输入重定向的方法: adb shell < cmd.txt
3. 求问 BAT脚本如何自动执行 adb shell 以后的命令
这是无法实现的。你无法在bat脚本中运行交互式shell命令,你的命令无法发送进入。
bat脚本运行时,是在CMD的环境下运行,它的命令解释器是cmd。
而su在shell环境下执行的,它的命令解释器是shell下的"/system/bin/sh"。
su是一条交互式的shell命令,它需要与shell环境下的用户进行交互操作。
问题就在这里了,
bat脚本只负责将"shell su"作为参数传递执行一次adb.exe。
这个动作完成,这条命令的步骤就算结束了,
但此时su还有一个切换用户身份的动作,如果有密码还会通过shell请求用户输入密码,
但运行bat的cmd环境是它收不到这个请求的。
解决办法:
一. 将su命令之后需要执行的命令写成一个sh脚本。
通过adb将sh脚本推入手机中,并为脚本添加可执行权限
在bat中添加一条比方说这样的命令
adb shell ". /path/to/your/file.sh"
二. 安装superSU授权管理器
安装superSU授权管理器后执行
adb root
授权,允许adb以root身份运行。
这之后你通过adb 发送的shell命令会以root身份执行。
4. 如何将这个.bat 执行文件改成.sh 的 shell 脚本
1.shell第一行#!/bin/sh
2、shell定义变量局握裤export libpath=.
3、shell使用变量$libpath,替换%libpath%
4、目录和目录要用冒桐简号,你可以参考tomcat里面的catalina.sh的CLASSPATH
libpath=${libpath}:${lib}commons-codec.jar
pause可以用sleep 1代替
5、皮盯例如
#!/bin/sh
cd ../bin
export lib=../lib/
export libpath=.
export interfaceURL=
export userName=zhangsan
export authCode=a123456
export libpath=${libpath}:${lib}commons-codec.jar
export libpath=${libpath}:${lib}commons-lang.jar
export libpath=${libpath}:${lib}geronimo-jms_1.1spec-1.0.jar
export libpath=${libpath}:${lib}geronimo-jaxws_2.1_spec-1.0.jar
export libpath=${libpath}:${lib}jaxp-api-2.1.jar
export libpath=${libpath}:${lib}jaxen-1.1-beta-7.jar
java -cp $libpath com/csdc/happy/webservice/client/happyTester $interfaceURL $userName $authCode
sleep 1