Windows・Linux・android間でファイルの送受信を簡単に行うためにMagicWormholeをインストールした際のメモ。
インターネットに接続されていれば、どこからでもファイルの送受信が可能。
github.comWindowsでのインストール
powershellを管理者権限で起動
pythonをインストール
Microsoftストアアプリから Pythonで検索して使用したいバージョンをインストール。
とりあえず3.10をインストール済みだったのでそのまま使用する。
システムの詳細設定の環境変数にpythonにpathを通しておく。
ユーザーの環境変数にのみ設定したが、システム環境変数でも良い。
ディレクトリ移動(powershellデフォルトのディレクトリにはインストールできない)
とりあえずcドライブ直下にmagicフォルダを予め作成。
cd C:\Users\xxxx\Desktop
Python Package Manager (pip)のアップグレード
pip install --upgrade pip
*エラーした
[notice] A new release of pip is available: 23.1.2 -> 23.2.1
[notice] To update, run: python.exe -m pip install --upgrade pip
と出力されたので、
python.exe -m pip install --upgrade pip
Successfully installed pip-23.2.1 出力されてインストール成功。
Magic Wormhole インストール
pip install magic-wormhole
*以前インストールでエラー発生時のメモ
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
エラーメッセージからMicrosoft C++ Build Toolsが不足?と判断・インストール。
https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/
c++分のみ選択してインストールした、.net等もあるが今回はとりあえず必要そうなC++のみインストールした。
確認コマンド
wormhole /?
インストールされたフォルダ
c:\users\ユーザー名\appdata\local\programs\python\python310\lib\site-packages\magic_wormhole-0.12.0.dist-info
参考削除コマンド
pip uninstall magic-wormhole
このままでは、コマンドラインでの使用なのでデスクトップ上にショートカットを作成し、ドラッグ&ドロップで送信とダブルクリックで受信画面表示されるようにする。
スクリプトファイル作成
C:\Users\ユーザー名\OneDrive\script\
送信用
wormhole_send.ps1
内容 以前はこれで複数ファイル転送できた?がNG
(ヘルプ見てもコマンドラインで複数一括の処理方法は判らなかった、元々できないのかも?)
Add-Type -Assembly System.Windows.Forms
$file = ""
foreach($arg in $Args) {
if ($file -eq "") {
$file = $arg
} else {
$file = $file + "`n" + $arg
}
}
wormhole send $arg
なので、これでも良い
foreach($arg in $args) {
}
wormhole send $arg
が、最終的に下記内容にした、一括では遅れないが複数ファイルを連続で処理可能。(1つ処理後に送信コードを連続して作成する、ファイルが多い場合はフォルダにコピーかZIP等で圧縮してから処理すると良い。)
foreach($arg in $args) {
wormhole send $arg
}
受信用
wormhole_recive.ps1
内容
wormhole receive
連続して受け取れるようにしたい場合
for (;;) {wormhole receive}
(終了時は、CTRL+Cかpowershellのウィンドウを閉じる。)
デスクトップにショートカット作成
作成したスクリプトを参照し、ショートカットを作成。
送信用のプロパティ
作業用フォルダを任意のフォルダにしておく。例:C:\work\wormhole
ショートカットのリンク先の先頭に以下オプションを追加
powershell -NoProfile -ExecutionPolicy RemoteSigned -File
C:\Users\ユーザー名\Desktop\スクリプト名.ps1 だとしたら
例 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -NoProfile -ExecutionPolicy RemoteSigned -File C:\Users\ユーザー名\Desktop\スクリプト名.ps1
powershell
PowerShellを起動
-noexit
完了後にpowershellを終了しない(送受信の結果を確認するため)
-NoProfile
オプションでデフォルトのプロファイルを指定
-ExecutionPolicy RemoteSigned
オプションで実行ポリシーを指定
-File
オプションで実行する.ps1ファイルを指定
受信用
作業用フォルダを任意のフォルダにしておく。例:C:\work\wormhole
送信用にドラッグ&ドロップすると、受信側で入力するテキストが表示される。
例: 1-commando-bison
*フォルダをドラッグ&ドロップすれば複数ファイルを送信(自動でZIPアーカイブするので容量によっては準備に時間がかかる。以前はフォルダでなくても複数選択で可能だった?暫く使っていなかったので要調査。)
受信用のショートカットをダブルクリックすると、コード入力画面になる。
コードを入力すると、受信用ショートカットで指定したフォルダにダウンロードされる。
送信側の画面、送信速度などが表示される100%になっていれば正常終了なので”EXIT”を入力して終了する。
受信側の画面、受信速度などが表示される100%になっていれば正常終了なので”EXIT”を入力して終了する。
2024/02/18 追記
QRコードも作成するようにしたい。
qrcode が使えそう。
pythonなので、OS問わず使えるはず。
インストール
powershellにて
pip install qrcode[pil]
確認
qr "test"
█████████████████████████████
█████████████████████████████
████ ▄▄▄▄▄ █▀█ █▀█ ▄▄▄▄▄ ████
████ █ █ ██▀▀▄██ █ █ ████
████ █▄▄▄█ █▄ █ ▄█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█▄▀ █▄█▄▄▄▄▄▄▄████
████▄█ ▀ ▀▄▀██ ▀▄▀█▀▄██ ▀████
████▄█▄▀▀▀▄▄ ▀ ▄ ▀▄▄ ▄████
████▄█▄█▄█▄█▀▄▄▄█▄ ▄█ █▄ ████
████ ▄▄▄▄▄ ██▄▀█▄█▀█▄▄█ ▄████
████ █ █ █▄▄ ▀▄▀▄▀▄▄█ ▄████
████ █▄▄▄█ █▄▄ ▀ ▄ ▀▀▄▀▄████
████▄▄▄▄▄▄▄█▄▄▄▄█▄▄▄██▄▄▄████
█████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
画面上では正常なQRコードで表示される。
sendコードと同時にQRコードも表示させたいが、
wormhole send $arg | qr
wormhole の標準出力が qr の標準入力にできない。
wormholeコマンドの出力が”wormhole receive ”コード” ”なので、qrコマンドに渡されてもNGかもしれないが、そもそもQRコードが表示されない。
現状では、コードが表示されたらコピーして別のpowershell画面でQRコード作成。
以前作成したショートカットでの送信を使用した例
Sending 76 Bytes file named 'wormhole_send.ps1'
Wormhole code is: 7-combustion-glitter
On the other computer, please run:
wormhole receive 7-combustion-glitter
7-combustion-glitter をコピー
別のpowershellを開いて
qr 7-combustion-glitter
█████████████████████████████████
█████████████████████████████████
████ ▄▄▄▄▄ █▄ █▄▄▀███ ▄▄▄▄▄ ████
████ █ █ █▄ █▀ ▄▀█ █ █ ████
████ █▄▄▄█ █▀▄█ ▀▄ █▀█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█▄█▄█ █ █▄█▄▄▄▄▄▄▄████
████▄▀ █▀█▄ ██▀▄██▀▀ █▀ ██▄█ ████
████▀▀▄█ █▄▀ █▀█ █▄▄ █ ▄▀█▀▄████
█████▀ ▀▄▀▄██▀▀▄█ ▄▀ █ ▀█ ▀█▀████
████▄▄ ▀█▄ ███▄█▀█ ▀▀▀██▀█ ████
████▄▄█▄██▄█▀▄▄▄ ▄█▄ ▄▄▄ ▀▀ ████
████ ▄▄▄▄▄ █▄ ▄▀ ▄ ▀ █▄█ ▀▄▄▄████
████ █ █ ██ ▄██ ▄ ▄ ▄█▀▄████
████ █▄▄▄█ █▄█ ▄█▀██▀ ▀▀▄ █▄▄████
████▄▄▄▄▄▄▄█▄█▄▄▄▄█▄▄▄██▄███▄████
█████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀