Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用批处理(.bat)文件自动执行adb外壳命令_Android_Windows_Shell_Batch File - Fatal编程技术网

Android 使用批处理(.bat)文件自动执行adb外壳命令

Android 使用批处理(.bat)文件自动执行adb外壳命令,android,windows,shell,batch-file,Android,Windows,Shell,Batch File,我定期向Android手机(根手机)中的不同系统文件授予读/写/执行(chmod 777)权限。有时我将chmod 777命令添加到启动脚本中,只是为了节省时间。 在三星Galaxy S6手机上,我正在更新文件(脚本):“/etc/init.sec.boot.sh”,在文件末尾添加以下命令 chmod 777 使用以下命令从adb外壳内部执行此操作 su echo 'chmod 777 <filename>' >> /etc/init.sec.boot.sh adb s

我定期向Android手机(根手机)中的不同系统文件授予读/写/执行(chmod 777)权限。有时我将chmod 777命令添加到启动脚本中,只是为了节省时间。 在三星Galaxy S6手机上,我正在更新文件(脚本):“/etc/init.sec.boot.sh”,在文件末尾添加以下命令

chmod 777

使用以下命令从adb外壳内部执行此操作

su
echo 'chmod 777 <filename>' >> /etc/init.sec.boot.sh
adb shell su -c "echo \"chmod 777 <filename>\" >> /etc/init.sec.boot.sh"
su
echo'chmod 777'>>/etc/init.sec.boot.sh
现在,如果我尝试使用.bat文件执行相同的操作,它会给我权限错误。我正在使用以下命令

su
echo 'chmod 777 <filename>' >> /etc/init.sec.boot.sh
adb shell su -c "echo \"chmod 777 <filename>\" >> /etc/init.sec.boot.sh"
adb shell su-c“echo\“chmod 777\”>/etc/init.sec.boot.sh”
由于该命令不起作用,我将文件复制到SD卡,对其进行了修改,然后用修改后的版本替换了原始文件。如果我现在读取文件的内容,它会完全读取我想要的内容,但是chmod命令永远不会执行。我重新启动了几次电话,但文件许可根本没有生效。在这一点上,如果我从shell内部运行相同的命令,if工作

su
echo 'chmod 777 <filename>' >> /etc/init.sec.boot.sh
su
echo'chmod 777'>>/etc/init.sec.boot.sh
此时init.sec.boot.sh文件中的最后两行如下所示

chmod 777 <filename>
chmod 777 <filename>
chmod 777
chmod 777
最后两行似乎完全一样。chmod命令仅在从shell内部写入时有效。我能想到的唯一合理解释是,windows命令提示符和Android linux shell可能使用不同的文本编码。 如何从.bat文件(甚至直接从命令提示符)成功执行chmod命令


PS:我确实重新安装了/系统以进行读/写操作。

我想问题在于Windows EOL和Unix EOL之间的差异

因此,我在Linux系统(Androids Linux系统)中创建了一个脚本,来完成chmod的工作。使用adb pull命令将.sh文件复制到我的Windows计算机

现在,我的原始批处理文件将此脚本复制回手机并执行它。(我必须将脚本复制到手机内部的/data/local)。
这工作得很好。

我想问题在于Windows EOL和Unix EOL之间的差异

因此,我在Linux系统(Androids Linux系统)中创建了一个脚本,来完成chmod的工作。使用adb pull命令将.sh文件复制到我的Windows计算机

现在,我的原始批处理文件将此脚本复制回手机并执行它。(我必须将脚本复制到手机内部的/data/local)。
这工作得很好。

在Windows中的含义与在unix中的含义相同。如果希望adb shell处理重定向,则必须在Windows中转义重定向。所以
^>^>
。我已经在“”中插入了所有内容。因此,所有操作都应该在adb外壳内执行。我还使用^>^>尝试了您的方法,但它停止将chmod命令连接到原始脚本。
在Windows中的含义与在unix中相同。如果希望adb shell处理重定向,则必须在Windows中转义重定向。所以
^>^>
。我已经在“”中插入了所有内容。因此,所有操作都应该在adb外壳内执行。我还使用^>^>尝试了您的方法,但它停止将chmod命令连接到原始脚本。