TimeTrap
TimeTrap

Reputation: 1142

Run sqlite3 command from batch file?

I want to make it easier to access the sqlite databases on the emulator, so I've created a batch file that successfully runs the first line, but is there a way to run the second line from the batch file? (At this point adb is already running, so it would be running a command in the shell.)

adb -s emulator-5554 shell
# sqlite3 /data/data/com.myProject/databases/myDatabase

UPDATE: For some reason

adb -s emulator-5554 shell sqlite3 /data/data/com.myProject/databases/myDatabase

prevents you from using the command line. Typing and pasting both seemed to be blocked. I ran this line in a command line outside of the batch and it does the same thing.

Separate lines work fine:

adb -s emulator-5554 shell 
sqlite3 /data/data/com.myProject/databases/myDatabase

but this doesn't work in the batch file (the sqlite3 command gets executed too early).

Upvotes: 1

Views: 1548

Answers (2)

Seva Alekseyev
Seva Alekseyev

Reputation: 61341

You can use input redirection to send a stream of commands to ADB:

adb -s emulator-5554 shell <a.txt

Where a.txt contains

sqlite3 /data/data/com.myProject/databases/myDatabase
logout

This scales better. a.txt can grow as big as you want.

Upvotes: 1

patthoyts
patthoyts

Reputation: 33193

You can run specific commands other than just an interactive shell on the target device. eg:

adb -s emulator-5554 shell ls /sdcard

or

adb -s emulator-5554 shell sqlite3 /data/data/com..../database.db

Once it gets complicated, it might be better to use a script that you copy over onto the device and run on demand.

Upvotes: 1

Related Questions