JScript とレジストリ操作で、直にフォルダにダウンロードする機能を作る

Windows での作業中、作業フォルダとブラウザのダウンロード先フォルダが離れていることがよくあります。

別に普通のことです。しかし例えばフリー素材集めのときなどは、ブラウザがダウンロード先として使うフォルダと、最終的な保存先フォルダを頻繁に行き来することになり少し面倒です。

先日もそういう場面がありました。繰り返し繰り返し、複数のフォルダとブラウザを行き来していると、単純な作業がゆえに居場所を見失いそうになります。

めんどい…。

これ、フォルダの移動を最終的な保存先に限定することで、ちょっとはマシにならないかな…。

そんな想いから作成したのが、今回の簡易ツールです。

仕様等

  • 開発・動作確認環境は Windows 7 64 bit。
  • ここに置いてるのは簡易版。もう少し配慮してるのは GitHub で公開中

基本仕様

  • フォルダ上の右クリックメニューから実行。
  • クリップボード内の文字列を元にダウンロードをおこなう。
    • クリップボードに URL っぽい文字列がある場合のみダウンロード。 ( / が含まれるかどうかで判断)
  • 保存ファイル名は最後の / 以降の文字列を使う。
    • Windows でファイル名に使えない文字は _ に変換する。
    • / 以降の文字がなければ、ファイル名は downloaded_from_clipboard となる。
    • 既に同名ファイルが存在する場合、ユーザーに上書きの許可を求める。承諾時、上書きをおこなう。
  • ダウンロード可能な URL をクリップボードから得られなかったり、保存先として使うファイル名を作れなかった場合は何もせずに終了する。

免責事項

  • 当たり前ですが、使用やセットアップ等は完全に自己責任でお願いします。

セットアップ

スクリプト

どこか適当な場所に以下のスクリプトを保存する。ファイル名は何でも構いませんが、拡張子は .js で。

レジストリ

  1. HKEY_CLASSES_ROOTDirectoryBackgroundshell 直下にキー download_from_clipboard を追加。

  2. download_from_clipboard に文字列 MUIVerb を追加。コンテキスト・メニュー用の項目名として download from clipboard と入力する。

  3. download_from_clipboard 直下にキー Command を追加。 (既定)wscript "{スクリプトの絶対パス}" を入力。

使用

上記セットアップを完了後、フォルダの背景箇所を右クリックすると設定した項目が現れます。

クリップボードに URL が存在する状態で機能を実行すると、実行したフォルダにファイルがダウンロードされます。

作ってみて

ちょっと便利。

ただ、今回初めて触れた JScript (WSH) に関しては微妙な癖の強さを感じました。

簡単な機能だし Windows 標準で使えるこれでいいかと気軽に選んだのですが、単純に文字を出すにも違和感というかなんというか。ブラウザ用の JavaScript に慣れているせいもあるんでしょうけど。

しかし同時に、機能の強力さと制作の手軽さを実感しました。

昔から名前を聞くだけあります。ツールを作ったこと以上に、 WSH の世界に踏み入れたことに心を動かされた感じです。

追記

ただし Wikipedia の WSH の項目 によると、

PowerShellの登場により、Windows Script Hostはその役割を終えたと言える。今後、新しい機能が追加される予定は無いとされている。

とのこと。

…まあ、 PowerShell だとデフォルトでスクリプトファイルを単体で動かせない みたいだから別にいいか。別物別物。 WSH はまだ死んでいない。

興味をもち始めた初学者としては、そう思いたい。

参考サイト

JScript

レジストリ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です