5
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ファイルを右クリックしてフルパスを取得するプログラムをPythonで作る

Last updated at Posted at 2019-09-24

背景

Outlookのメール文中にファイルサーバーのリンクファイルを記載することが多いです。
現在は、該当のファイルをShiftキー+右クリックしてパスをコピーしているのですが、
貼り付け後にパスを<>で囲う必要※があり、毎日のことになると地味に面倒くさいです。
※<\\ファフィルサーバー\ディレクトリ\ファイル名>

目的

ファイルを右クリックして、フルパスを取得し、<>で囲うプログラムを作りたいと思います。

pyperclipのインストール

クリップボードにフルパスをコピーするために、pyperclipが必要になります。pyperclipは標準ではないので、事前にインストールしておきます。

$ pip install pyperclip

コード

コードはとってもシンプル。これだけでOKです。
Outlookで使用せず、単純にフルパスだけコピーしたいならelse以降はpc.copy(file_path)だけでOK。

FilePath.py
import sys
import pyperclip as pc

if len(sys.argv) < 2:
    #引数がない場合の処理。今回は何もしない。
    pass
else:
    #sys.argv[1]に指定ファイルのフルパスが入る。Outlookでリンクを張るために<>で囲う。
    file_path = "<" + str(sys.argv[1]) + ">"
    pc.copy(file_path)

batファイルの作成

pyファイルはsendtoフォルダに置いてもキックされません。
作成したFilePath.pyをキックするためにbatファイルを作ります。※PowerShellでも良いです。

FilePath.bat
python \\Pythonファイルの保存先\FilePath.py

Sendtoフォルダに保存

作成したbatファイルをsendtoフォルダに保存します。
sendtoフォルダは[Win]キーと[R]キー同時押しして、検索ボックスに「shell:sendto」と入れれば表示されます。

利用方法

ファイルを右クリック→送る→FilePath.batをクリックするとパスがクリップボードに張り付けられます。
image.png

補足:ユーザーへ配布したい場合

ユーザーに配布する場合は、EXE化したものを同じくsendtoフォルダに置いてあげればbatファイル不要で起動出来ます。

5
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?