【デバッグ接続】PC/端末間でファイルをコピーするpush/pull機能はファイル名の文字化けに注意

端末をパソコンとUSB接続しての「デバッグ接続」の代表的な機能に、パソコン上のファイルを端末上にコピーする「adb push」と端末上のファイルをパソコン上にコピーする「adb pull」がある。
出先で利用したいファイルを端末上にコピーしたり、写真などのファイルを端末上にバックアップするなど、一般ユーザーにも有用な機能だ。
通常のUSBストレージ接続は、エクスプローラなど一部の対応ソフトからしかアクセスできず、ファイル同期ソフトなどからは操作できないことが多いが、デバッグ接続のpush/pullコマンドならば、BATファイルにコマンドを記述するなどして簡単に定型処理を自動化できるぞ。
ただし、現在のpush/pullには、ファイル名に含まれる日本語などのマルチバイト文字が文字化けするという問題が存在するので注意が必要だ。デジタルデータで文字列を表現するための文字コードとして、端末側では「UTF-8」を使っているのに対し、Windows側のプログラムでは「Shift_JIS」が使われているのが原因だ。ADB側で適宜変換してから転送してくれればいいはずなのだが、なぜかずっと改善されないままになっている。
そこで、文字化けを回避してファイルを転送するためのBATファイルをあんスマが作成したぞ。一旦日付時刻をベースにした仮のファイル名で転送して、後から本来の名前にリネームするという仕組みだ。
音楽や動画など、日本語を含む名前のファイルを手軽に転送したい場合に役立つだろう。



001

コマンドプロンプトでadb.exeのあるフォルダを作業フォルダにし、「adb push」に続いてパソコン上のファイルパスと端末上のファイルパスを入力すれば、パソコンから端末へのファイル転送が行われる。送り元がファイルで送り先がフォルダの場合は、そのフォルダ内に元のファイル名で転送されるぞ。


002

逆に、端末からパソコンへ転送するには「adb pulll」に続いて端末上のファイルパスとパソコン上のファイルパスを指定すればいい。


003

日本語などのマルチバイト文字を含む名前のファイルを転送しようとすると、端末上のアプリから見たときにファイル名が文字化けして、正常に表示や削除ができなくなってしまうので、注意が必要だ。



文字化けしてしまったファイルを削除


010

Android上のアプリには、文字化けしたファイルの削除に対応しているアプリは少ないが、デバッグ接続から「adb shell rm」コマンドを実行すれば削除出来る。「adb shell rm -rf」に続いて、削除したいファイルのパスを入力しよう。
ファイル名の一部を「*」に置き換えれば、残りの部分が一致する全てのファイルが削除対象になるぞ。削除したくないファイルが有る場合は、あらかじめ別フォルダに退避しておこう。



文字化けを回避してパソコン上のファイルを端末上に転送するBATファイル



004

あんスマが用意した「mbpush.bat」では、文字化けを回避してパソコン上のファイルを端末上にコピーできる。
上記URLからダウンロードしたBATファイル集の中身をパソコン上にコピーしたら、メモ帳などのテキストエディタで「mbpush.bat」を開き、最初の方の「SET」で始まる行に書かれている設定を変更しよう。
「ADB=」の行の「""」内をadb.exeのファイルパスに変更し、パソコンに複数の端末が接続されている場合は、後ろに「-s」に続いて端末のIDを追加。
「DEVICE_DIR」では、転送先となる端末上のフォルダを指定する。末尾に「/」を付けてはならないことに注意しよう。
転送先にしたいフォルダが複数ある場合は、mbpush.batをコピーして、それぞれ異なる転送先に書き換えよう。


005

記述するフォルダパスに日本語などのマルチバイト文字を含む場合は、BATファイルを保存するときの文字コードを「ANSI」や「Shift_JIS」「CP932」などと書かれているものに設定しよう。文字コードの設定は、テキストエディタごとに異なるが、Windows標準の「メモ帳」の場合は保存ダイアログの下部で選択できるはずだ。


006

エクスプローラなどで、BATファイルのアイコンに転送したいファイルをドラッグ&ドロップしよう。


007

文字化けを回避しての転送処理が実行されるぞ。



文字化けを回避して端末上のファイルをパソコン上に転送するBATファイル


008

「mbpull.bat」では、文字化けを回避して端末上のファイルをパソコン上にコピーできる。初期状態では、コマンドプロンプトで「mbpull」に続いて端末上のパス、パソコン上のパスを入力することで使用する。


009

毎回同じのフォルダを転送したい場合は、mbpull.batを編集し、「DEVICE_DIR」と「LOCAL_DIR」の欄に端末上のフォルダパスとパソコン上のフォルダパスを指定しよう。
パスを指定したmbpull.batは、ダブルクリックで実行すればいいぞ。

関連記事

2014年10月24日21時40分 公開 | カテゴリー: ファイル管理 | キーワード:, | Short URL
このエントリーをはてなブックマークに追加

最新記事