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

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

chmod 777 <filename>

这使用以下命令在adbshell内工作正常

 su echo 'chmod 777 <filename>' >> /etc/init.sec.boot.sh 

现在,如果我尝试使用.bat文件相同,它会给我权限错误。 我正在使用以下命令

 adb shell su -c "echo \"chmod 777 <filename>\" >> /etc/init.sec.boot.sh" 

由于这个命令不工作,我复制了文件到SD卡,修改它,然后用修改后的版本replace原始文件。 如果我现在读取文件的内容,它正确地读取我想要的内容,但是chmod命令从不执行。 我几次重新启动电话,但文件许可完全没有影响。 在这一点上,如果我运行相同的命令从壳内,如果工作。

 su echo 'chmod 777 <filename>' >> /etc/init.sec.boot.sh 

此时,init.sec.boot.sh文件中的最后两行是这样读取的。

 chmod 777 <filename> chmod 777 <filename> 

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

PS:我重新安装/系统读取/写入。

Solutions Collecting From Web of "使用批处理(.bat)文件自动执行adb shell命令"

我猜这个问题是Windows EOL和Unix EOL的区别。

所以我在Linux系统(Androids Linux系统)里面创建了一个脚本来做chmod的东西。 使用adb pull命令将.sh文件复制到我的Windows机器上。

现在我的原始批处理文件将此脚本复制回手机并执行。 (我不得不把脚本复制到手机里面的/ data / local)。 这是完美的工作。