2017-11-08 7 views
0

スマートフォンからdata/dataフォルダからファイルを抽出します。 ユーザがパッケージに名前を付けて保存場所を指定できる変数付きのbashスクリプトを書くことは可能ですか? bash入力をどのようにしてadbシェルに送ることができないのですか? 誰かが私に例を挙げてもらえますか? adbのシェル変数を知らないので、私はこの文句を言わない仕事はかなり確信しているバッチファイルを使用して、ルート付きAndroidスマートフォンからadbシェル経由でデータを抽出します

echo please name your package you want to copy (example: com.icq.package) 
@echo set /p packageName= 

echo please enter your Windows Username 
@echo off set /p Username= 

adb shell su -c "chmod 777 /data" 
adb shell su -c "chmod 777 /data/data" 
adb shell su -c "chmod -R 777 /data/data/"packageName" 
adb pull /data/data/"packageName" C:\Users\"Username"\Desktop 

今まで、私はこれを行っています。私はコーダーではないので、私はすべての入力を感謝します。

答えて

0

DOSで変数の値を取得するには、%に囲みます。

packageNameUsernameの値がスペースやその他の特殊文字が含まれていない場合、これは動作するはずです:

adb shell su -c "chmod 777 /data" 
adb shell su -c "chmod 777 /data/data" 
adb shell su -c "chmod 777 /data/data/%packageName%" 
adb pull /data/data/%packageName% C:\Users\%Username%\Desktop 
+0

残りは動作するはずですか? – obi89

+0

@ obi89 'packageName'と' Username'に空白やその他の特殊文字が含まれていない場合、残りの部分はうまくいくはずです。 – janos

0

だから、将来的には他の皆さんは、同じ問題を抱えている場合:あなたが追加する必要があります":"機能的なユーザープロンプトです。また、明らかにデータ/データフォルダから直接引っ張って別の場所にコピーする必要はありません。

echo Name your Folder you want to copy 
@echo off 
set /p packageName=folderName: 

echo Please name your Windows Username: 
set /p user=userName: 

PAUSE 

adb shell su -c "chmod 777 /data" 
adb shell su -c "chmod 777 /data/data" 
adb shell su -c "chmod -R 777 /data/data/%folderName% 
adb shell cp -r /data/data/%folderName% /storage/ext_sd/ 
adb pull /storage/ext_sd/%folderName% C:\Users\%userName%\Desktop\%folderName% 

PAUSE 
関連する問題