ゴミ溜め@技術系日常系雑文

主にWeb技術やそのほかつまづいたこととか引っかかって調べたこととかをまとめてます。

はてなダイアリーから引っ越しました。)

右クリックメニューからファイルパスをコピー

Windowsでファイルやフォルダのパスを記述したい時、結構面倒。
例えば、

  1. 対象のファイルのあるフォルダを開く
  2. 「アドレス」をコピー
  3. パスを記述したいテキストエリアに貼り付ける
  4. 対象のファイル/フォルダのファイル名をコピー
  5. パスを記述したいテキストエリアに貼り付ける

なんという手間。。。

もっと単純な手があるのかもしれないけど、結局ある程度の手間を追わなければならない。

コンテキストメニュー(右クリックメニュー)を強化するアプリを入れるという手もあるけど、不用意にファイルを追加して、環境が壊れるのは困る、レジストリが汚れる等、少々不安要素がある。
これらを(あまり気にせず)改善する単純な方法が下記の通り。

キーワードは「コンテキストメニューの送る」「バッチ」「clipコマンド」。

コンテキストメニューに「送る」というのがあるが、実はこの送り先リストは、所定のフォルダにファイルを入れることで、自由に追加することができる。

いろいろなBlogや解説サイトがあるが、簡単に言ってしまうと、「SendTo」フォルダにファイルを入れておくと、「送る」リストに表示されるようになる。
SendToのパスは↓

win 2000,XPであれば、 <%HOMEPATH%\SendTo>
win Vis・・・7, Server2008であれば、 <%AppData%\Microsoft\Windows\SendTo> (あるいは、「ファイル名を指定して実行」で「shell:sendto」でOK。)

以下の記事が詳しい。

http://www.atmarkit.co.jp/fwin2k/win2ktips/085sendto/085sendto.html

http://www.atmarkit.co.jp/fwin2k/win2ktips/1391sendto7/sendto7.html

今回追加するのは下記のバッチファイル。

filepathSendToClip.bat
:ファイルパスをクリップボードにコピーする

@echo off
echo %1|clip
exit

fileSendToClip.bat
:ファイルの中身をクリップボードにコピーする

@echo off
clip<%1
exit

「%1」はバッチファイルに渡された引数の値を表す。
「echo %1」ならば、引数として渡された値をコマンドライン上に表示する。「|clip」することで、それをクリップボードに送る、という動作になる。
「clip<%1」とすると、「%1」の中身をクリップボードに送る、という動作になる。ただし、cp932(Shift-JIS)-CRLFなファイルじゃないと文字化けするので注意。

僕はDropboxにバッチファイルを保存しておき、使用しているPCで共有しているので、先ほどのファイルをに保存しておき、SendToフォルダにショートカットを作成して利用している。

以上。