VBSでポータブル デバイスにファイルをコピーする

今まではUSB接続でBATを使ってスマホにファイルをコピーしていたが、 最近のスマホはMTP接続のためBATが使えないのでVBSでWindows ポータブル デバイス(WPD)にファイルをコピーするプログラムを作成した。

スマホからPCへのコピーも可能。動作は Windows10 1903 で確認。

MTP(Media Transfer Protocol)

動作の説明

・コピー元とコピー先のフォルダと拡張子を設定してコピーする。

・ファイルが存在する場合はスキップする。(上書き確認の回避)

・CopyHereはWPDへのコピーでは終了を待たないので、ファイルが作成されるまで待つ対策を実施。(PCへのコピーの場合、CopyHereは終了を待つ)。

・無限ループを防ぐためタイムアウト時には強制終了する。(コピーをスキップやキャンセルした場合)

・CScript.exe からの実行に対応。(BATで使う場合のため)

・メッセージはOKを押さなくても設定した秒数後に自動で閉じる。

詳細はプログラムのコメントを見て下さい。

参考にしたのは 【2017年7月版】ポータブル デバイスからファイルをコピーするVBAマクロ

このVBAマクロではGetWpdでデバイスのタイプ名(ポータブル デバイス など)からデバイス名を自動取得していますが、タイプ名が違った場合にエラーになるので、デバイス名を指定した場合はGetWpdを使わないようにした。

デバイス名にPCのドライブ名を指定してもコピーできるので、この方が汎用性は高い。デバッグ用にも便利。

使い方としてはBATで CScript copyMTP.vbs とするのを推奨します。

WScriptから実行した場合は(vbsを直接実行した場合)ファイルごとにメッセージウィンドウが出るのは煩わしいのでコメントアウトしています。

コピー待ちのタイムアウトは120秒に設定しています。CScriptからの実行時には待ち時間も表示するので、タイムアウトが適切かどうか確認できます。

ポータブル デバイスにコピーするプログラムは検索しても見つからなかったので参考にして頂ければと思います。