2011-12-22 14 views
1

私はエミュレータ上のsqliteデータベースに簡単にアクセスしたいので、最初の行を正常に実行するバッチファイルを作成しましたが、バッチファイルから2行目を実行する方法はありますか? (それはシェルでコマンドを実行していることになるので、この時点で、ADBはすでに、実行されている。)バッチファイルからsqlite3コマンドを実行しますか?

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

UPDATE:

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

コマンドを使用できないように、いくつかの理由ライン。入力と貼り付けの両方がブロックされたようです。私はバッチの外のコマンドラインでこの行を実行し、同じことをします。

別々の行が正常に動作:

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

が、これは(sqlite3のコマンドが早すぎる実行されます)バッチファイルでは動作しません。

答えて

1

ターゲットデバイス上で、対話シェル以外の特定のコマンドを実行することができます。例えば:

adb -s emulator-5554 shell ls /sdcard 

または

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

それが複雑になると、それはあなたがデバイス上に上書きコピーするスクリプトを使用してオンデマンドで実行する方が良いかもしれません。あなたがADBにコマンドのストリームを送信するために、入力のリダイレクトを使用することができます

+0

複数のコマンドを送信するには、 ';'セパレータを使用します。このように: 'adb -s emulator-5554 shell ls/sdcard; ls/data' –

+0

素晴らしい、ちょうど私が探していたもの(私はそれが分かりませんでした)。問題のみ - 私はターミナルウィンドウに入力できません。バッチファイルにはプロセスがロックされていますか? – TimeTrap

+0

誰も私がターミナルウィンドウに入力できない理由を知っていますか?バッチファイルにはプロセスがロックされていますか?私はその後、SQLクエリのためのターミナルウィンドウを使用できるようにしたい。 – TimeTrap

1

a.txtこれは、より良いスケール

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

含ま

adb -s emulator-5554 shell <a.txt 

。 a.txtはあなたが望むほど大きくすることができます。

関連する問題