簡體   English   中英

來自.bat文件的ADB Shell“運行方式”未找到Unix命令

[英]ADB shell “run-as” from a .bat file not finding Unix commands

我正在嘗試自動化從應用程序中拉出數據庫,然后將更改后的版本推回設備的過程,但是它沒有按預期工作。

遵循Pilot_51對此主題的回答, Android ADB無需根用戶即可訪問應用程序數據庫,因此我能夠手動提取運行命令的數據庫。 但是,當我將它們放在.bat文件中時,執行的每個Unix命令都會返回“找不到”錯誤。

這是我得到的錯誤:

運行方式:chmod 666的exec失敗./database/mydatabase.db; 退出錯誤:沒有這樣的文件或目錄

這是.bat腳本代碼:

@echo off

:Ask
echo (A) Pull or (B) Push

set INPUT=
set /P INPUT=Input choice: %=%

If /I "%INPUT%"=="a" goto A 
If /I "%INPUT%"=="b" goto B
echo Wrong choice & goto Ask

:A
adb shell "run-as com.example.myapp 'chmod 666 ./databases/mydatabase.db; exit'; exit"
adb pull /data/data/com.example.myapp/databases/mydatabase.db C:/
goto End

:B
adb push C:/mydatabase.db /data/data/com.example.myapp/databases/mydatabase.db
adb shell "run-as com.example.myapp 'chmod 660 ./databases/mydatabase.db; exit'; exit"

:End
pause

如果我嘗試僅使用“ run-as com.example.myapp'ls'”運行adb shell ,它將顯示文件夾。 為什么ls可以工作,但是chmod無法識別?

您既不需要單引號,也不需要退出命令。 做就是了:

adb shell "run-as com.example.myapp chmod 666 databases/mydatabase.db"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM